Hello
Plusieurs erreurs dans ton code :
mysql_fetch_array() ne sert a rien dans ton cas car tu n'utilises pas les clefs associatives. Un mysql_fetch_assoc() serait plus approprie. Ensuite, tu dois tester correctement ta condition :
while ($nonn = mysql_fetch_array($reponses))
{
$noms = $nonn['nom'];
$prenoms = $nonn['prenom'];
$mails = $nonn['email'];
}
doit etre transforme en
while ( ($nonn = mysql_fetch_assoc($reponses)) !== FALSE)
{
$noms = $nonn['nom'];
$prenoms = $nonn['prenom'];
$mails = $nonn['email'];
}
Pareille pour la deuxieme boucle. Ensuite, je ne comprend pas trop l'interet de tes boucles car tu ecrase la derniere valeur a chaque tour de boucle.
Je pense qu'il se peut que php te cree un tableau a chaque fois (meme si sa me parait etrange).
Essaye sa :
if ($nomsx !== $nom && $noms === $nom)
{
echo "<div align = center>Erreur nom déja existant</div>";
echo "<script type=\"text/javascript\">"
."setTimeout(\"window.location='index.php?page=clients/inscription&menu=Inscription espace clients'\",2000);" // delai en millisecondes
."</script>";
}
Le triple egale permet de tester le type et la valeur a la fois. SI le type est different, la valeur ne sera pas teste. Ensuite, essaye de faire un debug de tes variables avec un print_r(var) avant de rentrer dans ta verif. Voila le code complet :
$nom = $_POST['nom'];
$nom = htmlentities( $_POST['nom']);
$nom = addslashes( $_POST['nom']);
$reponses = mysql_query("SELECT * FROM clients WHERE nom='$nom' OR prenom='$prenom' OR email='$email'") OR die ("<div style=\"text-align: center;\">Erreur!</div>");
while (($nonn = mysql_fetch_assoc($reponses)) !== FALSE)
{
$noms = $nonn['nom'];
$prenoms = $nonn['prenom'];
$mails = $nonn['email'];
}
$reponse = @mysql_query("SELECT * FROM clients WHERE clients='".$_SESSION['client']."'") OR die ("<div style=\"text-align: center;\">Erreur!</div>");
while (($non = mysql_fetch_assoc($reponse)) !== FALSE)
{
$nomsx = stripslashes($non['nom']);
$prenomx = stripslashes($non['prenom']);
$emailx = stripslashes($non['email']);
}
print_r($nomsx);
print_r($nom);
if ($nomsx !== $nom && $noms === $nom)
{
echo "<div align = center>Erreur nom déja existant</div>";
echo "<script type=\"text/javascript\">"
."setTimeout(\"window.location='index.php?page=clients/inscription&menu=Inscription espace clients'\",2000);" // delai en millisecondes
."</script>";
}
Je pense pas que cela fonctionnera mieux mais tu auras des resultats t'indiquant les erreurs possibles (venant probablement de tes boucles c'est quasi-sur)
Enjoy :-)