[RESOLU] Impossible de vérifier mes conditions correctement !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Impossible de vérifier mes conditions correctement !

Re: Impossible de vérifier mes conditions correctement !

par Bushy » 13 juil. 2016, 21:31

Re !!
En faite le code était bon ... l'erreur, un simple paramétrage (php.ini) sur wamp qui limitai les posts de fichier a 2MO ...
post_max_size = 3MO changer en 5MO et tout fonctionne impeccablement !
Encore merci !

Re: Impossible de vérifier mes conditions correctement !

par Spols » 11 juil. 2016, 11:05

essaye un var_dump($POST);
tu verra ainsi ce qui est transmis en POST

je pense pas que ca change quoi que ce soit mais tente aussi des double quotes plutot que simple quotes dans ton code HTML

Re: Impossible de vérifier mes conditions correctement !

par Bushy » 10 juil. 2016, 14:55

Merci pour cette reponse rapide !
Neamoins apres une reorganisation du code je ne comprend toujours pas pourquoi j'ai: " Notice: Undefined index: pub in C:\wamp\www\Ab Manut\addarticle.php on line 45" lorsque toutes mes conditions semblent reunis pour passer a la conditions suivante ...

Mon var_dump($_POST['pub']); me renvoi NULL alors que j'ai cliquer sur mon bouton submit et que la valeur devrais etre defini !!
<?php

		session_start();
		if (isset($_SESSION['logged']) || $_SESSION['logged']) {

				if(isset($_POST['pub']) AND !empty($_POST['produit']) AND !empty($_POST['choix']) AND !empty($_POST['description']) AND !empty($_POST['prix']) AND !empty($_POST['ref'])){

				$produit = $_POST['produit'];
				$categorie = $_POST['choix'];
				$description = $_POST['description'];
				$prix = $_POST['prix'];
				$reference = $_POST['ref'];

						if($_FILES['photo']['error']==0 ) {


						$file_name = $_FILES['photo']['name'];	
						$file_name_tmp = $_FILES ['photo'] ['tmp_name'];								
	
						$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );	
						//1. strrchr renvoie l'extension avec le point (« . »).	
						//2. substr(chaine,1) ignore le premier caractère de chaine.					
						//3. strtolower met l'extension en minuscules.									
						$extension_upload = strtolower(  substr(  strrchr($_FILES['photo']['name'], '.')  ,1)  );	

							if( in_array($extension_upload,$extensions_valides) ){				


							var_dump($file_name_tmp);


							}else{

								header('location:administration.php?error=2');
							}				 


						}else{


							header('location:administration.php?error=0');
						}

				}else{
					var_dump($_POST['pub']);
							exit();
					header('location:administration.php?error=1');

				}	


		}else{

			header('location:identification.php');

		}
						


		
	
?>

Re: Impossible de vérifier mes conditions correctement !

par Spols » 09 juil. 2016, 16:50

si tu indentais ton code correctement, tu aurait plus facilement une vue sur quelle erreur correspind à quelle cas.
ton code me dit que
error=2 correspond à une erreur dans l'upload,
error=0 à un champs texte pas rempli
error=1 à un appui sur le bouton d'envoi
et identification.php à une session vide
et à mon avis il y a un décalage des messages d'erreur.
et la double accolade fermante avant les header ne devrait pas être là mais aprés les header

Je prefère souvent inversé mes conditions, ainsi mes messages d'erreur se retrouvent à coté des condition qui les provoquent, et le code qui s'éxécute si tous va bien, est alors à la fin. mais ça c'est une préfèrence personnelle.

Impossible de vérifier mes conditions correctement !

par Bushy » 09 juil. 2016, 16:20

Bonjour !

J'ai un petit problème au niveau d'un script d'envoi de formulaire ...
Rien de bien folichon pour les plus aguerris d'entre vous mais en tant que débutant voila 2 jours que je suis dessus sans trouver de solution ...
Je conçoit que mon code soit moche " et pas commenté " mais le but étant pour l'instant que ce script veuille bien faire ce que je lui demande ...

Explication ...
Tant que tout n'est pas remplis dans le formulaire ... ou qu'une photo n'est pas jointe, un message d'erreur apparaît grâce a un switch et une récupération d'erreur via l'url.
Seulement j'ai l'impression que le script garde en mémoire certaine condition après les avoir effectués,
Je m'explique, lorsque je poste le formulaire vide cela m'affiche mon erreur correspondante, ensuite je rempli le formulaire mais sans ajouter de fichier et la j'ai bien la bonne erreur avec la redirection. Mais ensuite si j'inclut mon fichier sans remplir le formulaire, je suis rediriger vers ma page addarticle comme si ma premier condition
if(isset($_POST['pub'])){
n’était pas remplie !!
Si une âme charitable voudrais bien m'expliquer mon erreur ... je calle ...
Merci d'avance

Le formulaire HTML:

<?php 
session_start();
if (!isset($_SESSION['logged']) || !$_SESSION['logged']) {

	header('location:identification.php');

}
?>

<!doctype html>
<html lang="fr">
<head>
  <meta charset="utf-8">
  <title>AB Manut'service</title>
  <link rel="stylesheet" href="style.css">
  <script src="script.js"></script>
</head>


	<body>
	
		<header>

			<h1>Administration</h1>


		</header>



		<div id='conteneur'>

			
			 <a class = 'logout' href="deconnexion.php">Se deconnecter</a>
			 <div class=contenu>

				
				<p class = 'message'>

					   <?php
					   	if(isset($_GET['error'])){


					   		switch ($_GET['error']) {
					   		case 0:
					   			echo 'Vous devez joindre une image !';
					   			break;

					   		case 1:
					   			echo 'Vous devez remplir tout les champs !';
					   			break;

				   			case 2:
					   			echo 'Extention invalide, veuillez joindre un fichier au format ".jpg .jpeg .gif .png"';
					   			break;		
				   		
				   	}

					   	}
					   	

				   ?>
				</p>

			<form class ='admin' name='addproduct' method='POST' action ='addarticle.php' enctype="multipart/form-data">

				<h2>Ajouter un article</h2><br />


				<select name = 'choix'>
					<option value="vente">Vente</option>
					<option value="location">Location</option>
				</select><br />

				<input type='file'  name = 'photo'><br />
				<input type='text' name = 'produit' placeholder ='Produit'><br />
				
				<textarea cols="40" rows="15" name = 'description' placeholder ='Déscription'></textarea><br />
				<input type='text' name = 'ref' placeholder ='Ref'><br />
				<input type='text' name = 'prix' placeholder ='Prix'><br />
				<input type='submit' name = 'pub' value ='Publier'>



			</form>

La partie traitement php
<?php

		session_start();
		if (isset($_SESSION['logged']) || $_SESSION['logged']) {

			if(isset($_POST['pub'])){
							

									if (!empty($_POST['produit']) AND !empty($_POST['choix']) AND !empty($_POST['description']) AND !empty($_POST['prix']) AND !empty($_POST['ref'])){
										

											if($_FILES['photo']['error']==0){

												
											$file_name = $_FILES['photo']['name'];
											$file_name_tmp = $_FILES ['photo'] ['tmp_name'];

											$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
											//1. strrchr renvoie l'extension avec le point (« . »).
											//2. substr(chaine,1) ignore le premier caractère de chaine.
											//3. strtolower met l'extension en minuscules.
											$extension_upload = strtolower(  substr(  strrchr($_FILES['photo']['name'], '.')  ,1)  );
											if( in_array($extension_upload,$extensions_valides) ){


											var_dump($file_name_tmp);

											/*$produit = $_POST['produit'];
											$categorie = $_POST['choix'];
											$description = $_POST['description'];
											$prix = $_POST['prix'];
											$reference = $_POST['ref'];




											$Bdd = new PDO('mysql:host=127.0.0.1; dbname=abmanut', 'root','', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
											$addarticle = $Bdd->prepare('INSERT INTO chariots(name, categorie, description, prix, reference, dateadd) VALUES ( :name, :categorie, :description, :prix, :reference, NOW())');
											$addarticle->execute(array(


											'name' => $produit,
											'categorie' => $categorie,
											'description' => $description,
											'prix' => $prix,
											'reference' => $reference
						
											));


						

										 header('location:administration.php');*/

										}

										}else{

											
										header('location:administration.php?error=2');
										

										}
											
										}else{
											
										header('location:administration.php?error=0');
											

										}
										}else{

										
										header('location:administration.php?error=1');


		

										}

										}else{  

										header('location:identification.php');

										
											
										}
							
	
?>