8792 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai réalisé un formulaire d'ajout qui marche à merveille lorsque les champs ne sont pas vérifiés. Or il le faudrait, mais la vérif ne marche pas.

Quelqu'un saurait-il m'éclairer ?

code formulaire :
<form name="form1" method="POST" action="valide_ajout_categorie.php" enctype="multipart/form-data">
  Nom 
  <input name="nom" type="text" id="nom" value="nom" />
</p>
<p>Région 
  <input name="region" type="text" id="region" value="region"/>
</p>
<p>Description
  <input name="description" type="text" id="description" value="description"/>
</p><input name="id_cat" type="hidden" id="id_cat" />
<p> <input name="Submit" type="submit" value="Ok" />


code page verif et ajout :

<? 
$connect=mysql_connect("localhost","root","");
mysql_select_db("base",$connect);
	
	$id_cat      = $_POST["id_cat"] ;
	$nom_cat     = $_POST["nom"] ;
	$region_cat  = $_POST["region"] ;
	$description_cat = $_POST["description"] ;
	
		
	if (!empty($nom))
	  {
	  echo ("Vous n'avez pas saisi tous les champs du formulaire<br />");
  	  echo ("<a href='ajout_categorie.php'>Retour</a>");
	  exit();
	  }
	  else {
	  
 
    	
  //création de la requête SQL:
    $sql = "INSERT  INTO categorie (id_cat, nom_cat, region_cat, description_cat) 
	VALUES ('$id_cat', '$nom_cat', '$region_cat ', '$description_cat') ";
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql);
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
	  {
	    echo("L'ajout de la nouvelle catégorie a bien été pris en compte") ;
	  }
	  else
	  {
		echo("L'ajout de la nouvelle catégorie a échoué") ;
	  }  
	 
	  }
mysql_close();
?>
Modérateur
Salut,

Tu vérifies $nom alors qu'elle n'existe pas... ce serait plutôt $nom_cat non ? Smiley cligne

... et puis c'est if(empty(...)) et non if(!empty(...))
Modifié par koala64 (05 Apr 2007 - 16:11)
j'ai modifié le "if (empty)" donc ok quand je ne rempli pas le champ 'nom' ca me met "champs incomplet" mais le soucis c'est que quand TOUS les champs sont REMPLIS cela affiche aussi "champs incomplets" et ça ne s'affiche pas !!!
Savez vous pourquoi ?

 <?php

	$id_cat      = $_POST["id_cat"] ;
	$nom_cat     = $_POST["nom"] ;
	$region_cat  = $_POST["region"] ;
	$description_cat = $_POST["description"] ;
	
	$connect=mysql_connect("localhost","root","");
	mysql_select_db("crus",$connect);
	
if ( empty ( $_POST['nom_cat'] )  ) {
        
 echo ("champs incomplets");
      
}
                                   
else {

                   $sql = "INSERT  INTO categorie (id_cat, nom_cat, region_cat, description_cat) VALUES ('$id_cat', '$nom_cat', '$region_cat ', '$description_cat') ";
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql);
  //affichage des résultats, pour savoir si l'insertion a marchée:
  if($requete)
	  {
	    echo("L'ajout de la nouvelle catégorie a bien été pris en compte") ;
	  }
	  else
	  {
		echo("L'ajout de la nouvelle catégorie a échoué") ;
	  }  
	 
	  }

?>

Modifié par Sonia10 (05 Apr 2007 - 16:30)
Modérateur
ah bah maintenant, c'est $_POST['nom_cat'] qui n'existe pas. Smiley cligne

Là, tu crées une variable $nom_cat à laquelle tu affectes la valeur du champ "nom" mais tu ne testes pas cette variable. A la place, tu tentes de tester une hypothétique valeur "nom_cat" qui ne se trouve pas dans le formulaire... et donc pas dans les données envoyées. Du coup, c'est toujours vide, empty est toujours vrai et donc ça te mettra "champs incomplets" quelquesoit les valeurs envoyées...
Modifié par koala64 (05 Apr 2007 - 17:59)
ok !
j'ai refais avec le bon champ mais toujours le même problme ! I don't understand !!! WHY ?