Formulaire

Eléphant du PHP | 180 Messages

16 nov. 2005, 13:31

je débute en formulaire mon code

<html>
<body>

<?php

// astuce pour récuperer
//le nom du script courant:

$doc_cour=$_SERVER['PHP_SELF'];
echo $doc_cour;
?>
</body>
</html>

<html>
	<head>
	<title>Formulaire Simple</title>
	</head>
	<body>
	<H1>Pour en savoir plus sur vous...</H1>
    <form
		method="POST"
		action="<?php echo $doc_cour ?>"
	>

<table align="center">
	 	<tr>
	 	 <td>Sexe</td>
	 	 <td>
	 <select name="Sexe" size="1">
	 <option selected value="H">Homme</option>
	 <option value="F">Femme</option>
	 </select>
	 	</td>
	 </tr>
	 <tr>
	    <td>Nom</td>
	    <td><input type="text" name="Nom" size="40">
	    </td>  
	 </tr>
	 <tr>
	    <td>Prenom</td>
	    <td><input type="text" name="Prenom" size="40">
	    </td>  
	 </tr>
	 <tr>
	 	<td>Comment avez-vous connu ce site ?</td>
	 	<td>
	 		<input type="radio" name="provenance"
	value="par moteur de recherche"> Moteur de recherche
	 		<input type="radio" name="provenance"
	value="par une pub télé" > Pub télé
	 		<input type="radio" name="provenance"
	value="par un ami" > Par un ami
	 		<input type="radio" name="provenance"
	value="par hazard" > Par hazard
	 	</td>
	 </tr>
	 
	 <tr>
	 	 <td>Quels sont vos centres d'intérêt</td>
	 	 <td>
	 	  <input type="checkbox" name="interets[]"
	value="TELE">
	 	  				Télévision<br>
	 	  <input type="checkbox" name="interets[]"
	value="CINE">
	 	  				Cinéma<br>
	 	  <input type="checkbox" name="interets[]"
	value="MUSI">
	 	  				Musique<br>
	 	  <input type="checkbox" name="interets[]"
	value="JEUXV">
	 	  				Jeux vidéos<br>
	 	  <input type="checkbox" name="interets[]"
	value="INFO">
	 	  				Informatique<br>
	 	</td>
	</tr>	
		<td>Avez-vous des commentaires(*) ?</td>
		<td>
		<textarea name="commentaire" cols="20"
	rows="4">
		</textarea>
		</td>
	</tr>
	<tr>
		<td>
			<input type="reset" value="Annuler"
 name="Annuler">
		</td>
	</tr>
	
	<tr>
		<td>
		 <input type="submit" value="Valider"
 name="Valider">
		</td>
	</tr>
</table>

<p style="text-align: center; font: italic">PS: Les champs marqués (*) sont optionnels.</p>

</form>
</body>
</html>

<?php
	//Traitement du formulaire
	
//Si le formulaire a été soumis
// Pour ce faire on teste s'il existe
// une variable Valider dans $_POST

 if ($_POST['Valider']=='Valider')
 	{
 		$formcomplet=true; //si tous les champs non optionnionnels ont été saisies
 		$Message="Bonjour ";
 		
 		if ($_POST['Sexe']=="")
 		{
 			echo("<h3>Le champ sexe est vide!</h3>");
 $formcomplet=false;
 		}

 		else {
 					switch ($_POST['Sexe'])
 					{
 						case 'H':$Message.="Monsieur";break;
 						case 'F':$Message.="Madame ou Mademoiselle ";break; 
 				    }
 		}
 			    		
	 	if ($_POST['Prenom']=="")
	 	{
	 		echo ("<h3>Le champ Prenom est vide!</h3>");
 $formcomplet=false;
	 	}
	 	else {
	 			$Message.=$_POST['Prenom'];
	 	     }	 

	 	if ($_POST['Nom']=="")
	 	{
	 		echo ("<h3>Le champ Nom est vide!</h3>");
 $formcomplet=false;
	 	}
	 	else {
	 			$Message.=$_POST['Nom'];
	 	     }	        
	 		 			     
	    if ($_POST['Provenance']=="")
	    {
	    	echo("<h3<Comment avez vous connu ce site?</h3>");
 $formcomplet=false;
	    }
	    else {
	    	   $Message.=". Vous avez connu ce site
	    	   ".$POST['Provenance']." et ";
	         }
	         if (count($_POST['interets']) <= 1)
	         {
	         	echo ("<h3>Aucune centre d'interêt n'a été sélectionné !</h3>");
	         	$formcomplet=false;
	         }
	         else {
	         	$Message.="vos centres d'intérêt sont :<br><ul>";
	         	
	         foreach ($_POST['interets'] as $interet)	 
	         {
	         	switch ($interet)
	         	{
	         		case "CINE":$Message.="<li>Le cinéma</li>";break;
	         		case "MUSI":$Message.="<li>La musique</li>";break;
	         	 	case "JEUXV":$Message.="<li>Les jeux vidéos</li>";break;
	    			case "INFO":$Message.="<li>L'informatique</li>";break;
	         	}
	         }
	         
	         $Message.="</ul>";
	         }
	         
	         if ($_POST['commentaire']!="")
	         $Message.="<br> Voici vos commentaires:\"".$_POST['commentaire']."\"<br></ul>";
	         
	         if($formcomplet == true)
	         
	         echo  $Message;
	         
 	} //Fin si formulaire soumis

 	?>
 	
 	</body>
 </html>		
	  	 

Le debogage me signal

Informations: C:\Inetpub\wwwroot\Traitement Formulaire.php ligne 115 - Undefined index: Valider


Or lorsque je valide le formulaire rempli ou non cela me marque impossible d'afficher la page

Merci d'avance

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

16 nov. 2005, 13:39

Donc, dans l'ordre :
Bonjour (ça fait jamais de mal et ça coute pas cher)

Code : Tout sélectionner

<form method="POST" action="#">
Te permet de faire boucler le formulaire sur la page courante

Ensuite, tu doit tester si ton POST existe et non s'il contient la bonne valeur car, au 1er chargement, il n'existe pas et c'est la cause de ton erreur
<?php
  //Test si la variable existe 
  if (isset($_POST['Valider'])) 	 
Donc la prochaine fois, au lieu de venir, de poser du code et de ne presque rien expliquer, pense à donner des détails et essaye de voir si tu peux isoler les erreurs afin de ne pas poser une telle tartine de code
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 180 Messages

16 nov. 2005, 14:34

Merci pour test explication

Mais l'affiche de $Message ne s'effectue pas

faut-il passer par la creation d'une page temporaire?

VaN
Mammouth du PHP | 1107 Messages

16 nov. 2005, 15:21

peut etre changer
if($formcomplet == true)
en
if($formcomplet = true)

Mammouth du PHP | 19672 Messages

16 nov. 2005, 15:23

peut etre changer
if($formcomplet == true)
en
if($formcomplet = true)
Certainement pas : "=" est un opérateur d'affectation, or dans un if(), on doit utiliser des opérateurs de comparaison, donc "==" ou "===".
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

VaN
Mammouth du PHP | 1107 Messages

16 nov. 2005, 15:48

au temps pour moi.