Page 1 sur 1

Verifier les valeurs d'un formulaire

Posté : 31 mai 2010, 23:49
par arkhon21
Bonjour,

J'ai un petit problème pour la vérification d'un formulaire php

J'utilise le code php pour 2 différents formulaire
if($_POST['name']==""){
$answer = 'Indicate your name please. Thank<p><a href="index.php?page=2">Go Back</a>';
}

elseif($_POST['email']==""){
$answer = 'Indicate your correct email. Thank<p><a href="index.php?page=2">Go Back</a>';
}

elseif($_POST['subject']==""){
$answer = 'Indicate the subject of message please. Thank<p><a href="index.php?page=2">Go Back</a>';
}

elseif($_POST['message']==""){
$answer = 'Write your message please. Thank<p><a href="index.php?page=2">Go Back</a>';
}

else {
	
//INSERTION DANS LA TABLE

mysql_query ("INSERT INTO contact(id,name,email,subject,message,date) VALUES('','$name','$email','$subject','$message','$date')")or die ('Cannot select the database because: ' . mysql_error());

$answer = 'Your message have been sent correctly. We will answer your request as soon as possible.';

}
OK Ca marche. Maintenant, j'utilise la meme formule pour un autre formulaire destiné à l'ouverture d'un compte utilisateur, ca fonctionne pas!!!

A savoir:

if($_POST['$account']==""){
$answer = 'Select an Account please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$myusername']==""){
$answer = 'Indicate your correct email. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$mypassword']==""){
$answer = 'Select a password please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$firstname']==""){
$answer = 'Write your firstname please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$lastname']==""){
$answer = 'Write your lastname please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q1']==""){
$answer = 'Answer to the question #1 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q2']==""){
$answer = 'Answer to the question #2 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q3']==""){
$answer = 'Answer to the question #3 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q4']==""){
$answer = 'Answer to the question #4 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q5']==""){
$answer = 'Answer to the question #5 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q6']==""){
$answer = 'Answer to the question #6 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

elseif($_POST['$Q7']==""){
$answer = 'Answer to the question #7 please. Thank<p><a href="index.php?page=1">Go Back</a>';
}

//RECHERCHE COMPTE IDENTIQUE

$sql="SELECT * FROM $tbl_name WHERE myusername='$myusername'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);

//INSERTION VALEUR

if($count==0){
mysql_query("INSERT INTO $tbl_name VALUES('','$account','$myusername','$mypassword','$firstname','$lastname','$Q1','$Q2','$Q3','$Q4','$Q5','$Q6','$Q7')") or die(mysql_error());  
session_register("myusername");
session_register("mypassword");
$answer = '<b><font face="Arial,Helvetica"><font size=+2>Congratulation!</font></font></b><p><br>Your user account is open now.</font></b><p>Thank you !';
}

else {
$answer = 'This email is already in our database. <p><a href="index.php?page=1">Go Back</a>';
}
L'insertion fonctionne , mais c'est la vérification. Le script se comporte en ignorant la vérification. Auriez vous une idée sur ce qui cloche? Merci

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 00:05
par AoSiX
Salut,

il y a des $ en trop dans tes $_POST["XXXX"];

Utilises tu un extract quelque part ? :o

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 00:17
par arkhon21
Salut,

il y a des $ en trop dans tes $_POST["XXXX"];

Utilises tu un extract quelque part ? :o
Ahhhhhhhh Je n'avais meme pas vu ca! Quel con je suis!

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 02:29
par AB
Et si tu faisais afficher tes messages d'erreurs aussi... ça te l'aurait indiqué du genre "undefined index on line xxx"

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 12:02
par mere-teresa
Pour améliorer encore ton script, je te conseille de modifier ton test pour y mettre
$_POST['message'] === ""
ou sinon
empty($_POST['message']
qui est plus lisible

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 12:15
par AoSiX
Question à part, si on veut être strict, il faut test si la variable isset puis après is !="" , sinon un warning est lancé. As t'on besoin d'un isset avec empty ?

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 22:05
par Ryle
C'est plus propre, mais ce n'est pas nécessaire dans la mesure ou aucune alerte n'est générée avec empty() si la variable n'est pas définie (elle sera considérée comme vide) :)

Re: Verifier les valeurs d'un formulaire

Posté : 01 juin 2010, 23:19
par stealth35
C'est plus propre, mais ce n'est pas nécessaire dans la mesure ou aucune alerte n'est générée avec empty() si la variable n'est pas définie (elle sera considérée comme vide) :)
je plussoie, ducoup pas besoin de faire boublon avec isset :wink: