Unknown column ' ' in 'where clause'
hinda87
Messages postés
35
Statut
Membre
-
hinda87 Messages postés 35 Statut Membre -
hinda87 Messages postés 35 Statut Membre -
Bonjour,
le code suivant m'envoie l'erreur Unknown column ' ' in 'where clause' si je m'authentifie avec hind par exemple dans un formulaire
<?php
if (isset($_POST['mot_de_passe']) && isset($_POST['nom']) && isset($_POST['prenom']))
{ mysql_connect("localhost", "root", "");
mysql_select_db("tests");
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
$reponse = mysql_query('SELECT mot_de_passe FROM visiteurs WHERE nom ='. addslashes($nom) .' && prenom ='. addslashes($prenom) .'')or die(mysql_error());
$donnees = mysql_fetch_array($reponse);
le code suivant m'envoie l'erreur Unknown column ' ' in 'where clause' si je m'authentifie avec hind par exemple dans un formulaire
Configuration: Windows XP Firefox 2.0.0.16
4 réponses
-
Il faut entourer les valeurs avec des guillemets et remplacer "&&" par "AND" :
if (isset($_POST['mot_de_passe']) && isset($_POST['nom']) && isset($_POST['prenom'])) { mysql_connect("localhost", "root", ""); mysql_select_db("tests"); $nom = mysql_real_escape_string(htmlspecialchars($_POST['nom'])); $prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom'])); $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe'])); $reponse = mysql_query('SELECT mot_de_passe FROM visiteurs WHERE nom ="'. addslashes($nom) .'" AND prenom ="'. addslashes($prenom) .'"') or die(mysql_error()); $donnees = mysql_fetch_array($reponse);
Jean-François PillouFondateur de CommentCaMarche.net
-
merci jeff! il m'envoie aucune erreur pour le moment à l'affichage mais il n'exucute pas les boucles! ie il permet pas d'afficher la deuxieme page qui doit etre affichée aprés l'authentification :(
je t'explique comme je l'ai fait tout à l'heure : mon code doit afficher deux pages la premiere pour l'authentification et le passage a la deuxieme page se fait en vérifiant que les coordonnées postées par l'utilisateur dans la premiere sont les memes que celles existées dans une base de donnée -
Enlève sa mysql_real_escape_string ...
Signature non conforme ==> Supprimée
Modération CCM -
voici mon code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Page protégée par mot de passe</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <fieldset> <legend><strong>Vos coordonnées:</strong></legend> <form action="...;.php" method="post"> <p> <label for="prenom"><strong>votre prenom</strong></label> :<br /> <input type="text" name="prenom" id="prenom" /> </p> <p> <label for="nom"><strong>Votre nom</strong></label>:<br /> <input type="text" name="nom" id="nom" /> </p> <p> <label for="password"><strong>Votre mot de passe</strong></label> :<br /> <input type="password" name="mot_de_passe" id="pseudo" /> </p> </fieldset> <p> <input type="submit" value="Valider" /> <input type="reset" /> </p> </form> </body> </html> <?php if (isset($_POST['mot_de_passe']) AND isset($_POST['nom']) AND isset($_POST['prenom'])) // Si la variable existe { if ($_POST['prenom'] != NULL AND $_POST['mot_de_passe'] != NULL AND $_POST['mot_de_passe'] != NULL) { mysql_connect("localhost", "root", ""); mysql_select_db("tests"); $nom = ($_POST['nom']); $prenom = ($_POST['prenom']); $mot_de_passe = ($_POST['mot_de_passe']); $reponse = mysql_query('SELECT mot_de_passe FROM visiteurs WHERE nom =". addslashes($nom) ." && prenom =". addslashes($prenom) ."')or die(mysql_error()); $donnees = mysql_fetch_array($reponse); while ($donnees['mot_de_passe'] == $mot_de_passe) { mysql_close(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>..</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <form action="...php" method="post"> ........... </body> <?php } } } ?>