Php formulaire en une page probleme

Fermé
Gauthier - 1 déc. 2007 à 15:01
 Alain42 - 1 déc. 2007 à 17:30
Bonjour, je suis toujours sur mes formulaires et je ne comprends pas pourquoi il ne m' affiche pas d'erreurs quand je ne rentre
pas de nom.Par contre quand les mots de passe sont différents il m'affiche bien le message d'erreur. Je fais une overdose lol aidez moi svp :'(

<html><head><title>Cadeau</title></head>
<style>
body{background:skyblue;color:navy}
</style>
<body>
<?php
$msg="";
if(isset($_POST['ok'])){
$nom=$_POST['nom'];

if(isset($_POST['pwd'])and isset($_POST['pwd2'])){
$pwd=$_POST['pwd'];
$pwd2=$_POST['pwd2'];
if($pwd!=$pwd2){$erreur="password différents";}
}else{
$erreur="entrez password";}
if($nom=""){$erreur="entrer nom";}



}

?>
<form method="post" action="cadeau.php">
nom: <input type="text" name="nom"><br/>
password:<input type="password" name="pwd"><br/>
password: <input type="password" name="pwd2"><br/>

Quel couleur? <select name="couleur">
<option value="bleu">bleu</option>
<option value="jaune">jaune</option>
<option value="vert">vert</option>
<option value="rouge">rouge</option>
</select><br>
voulez vous un cafe?<input type="radio" name="cafe" value="oui">oui
<input type="radio" name="cafe" value="non">non
<br>votre avis: <br><textarea name="avis">

3 réponses

Salut,

Quelques erreurs d'imbriquation des test if(...)

et des test isset

Ce code fonctionne:

<html><head><title>Cadeau</title></head>
<style>
body{background:skyblue;color:navy}
</style>
<body>
<?php
$erreur="";
$nom="";
$pwd="";
$pwd2="";

if(isset($_POST['ok'])){
	// le formulaire a ete poste, donc tous les champs sont postes
	// on recupere leur valeur  (isset veut dire existe et ne teste pas si vide !)
	$nom=$_POST['nom'];
	$pwd=$_POST['pwd'];
	$pwd2=$_POST['pwd2'];
	//on teste si vide les uns après les autres et avec des else, si on a le nom on teste si passw etc...	
	//tu avait tjs passw manquant car testé après le nom et le message écrasait celui d'avant (Veuillez entrer votre nom)
	if($nom == ""){
		$erreur="Veuillez entrer votre nom";
	}elseif($pwd ==""){
		$erreur="entrez le password";
	}elseif($pwd2==""){
		$erreur="Confirmez le password";
	}elseif($pwd!=$pwd2){
			$erreur="password différents";
	}
}

?>
<form method="post" action="cadeau.php">
nom: <input type="text" name="nom" value="<?php echo $nom ?>"><br/>
password:<input type="password" name="pwd" value="<?php echo $pwd ?>"><br/>
password: <input type="password" name="pwd2" value="<?php echo $pwd2 ?>"><br/>
<!-- le value="..................."  sert à réafficher les valeurs déja saisies si erreur plus loin -->
Quel couleur? <select name="couleur">
<option value="bleu">bleu</option>
<option value="jaune">jaune</option>
<option value="vert">vert</option>
<option value="rouge">rouge</option>
</select><br>
voulez vous un cafe?<input type="radio" name="cafe" value="oui">oui
<input type="radio" name="cafe" value="non">non
<br>votre avis: <br><textarea name="avis"></textarea>
<br><input type="submit" name="ok" Value="OK">
<?php if($erreur!="") {echo "<font color='red'>".$erreur."</font>"; } ?>
</form>
</body>
</html>
0
merci beaucoup alain tu es mon sauveur :D
Après superman phpman ;)
0
Je suis bien content pour toi.

Alors mets le topic en résolu
0