Bonjour a tous,
bon voila ca fait plusieurs heures que je cherche, que je farfouille un peu partout mais je ne trouve rien. J'aimerai pouvoir verifier dans ma base de donnée que l'utilisateur qui essaie de se connecter existe bien, mais voila je n'y arrive. soit l'utilisateur existe tout le temps, soit il n'existe jamais. J'ai essayé d'écrire la variable de toutes les facons (simple cote, double cote, anti cote, ...) mais rien. Je vais donc vous montrez mon code en espérant que quelqu'un trouve une solution.
<?php
$link = mysql_connect('localhost', 'root');
if (!$link) {
die('Impossible de se connecter : ' . mysql_error());
}
$db_selected = mysql_select_db('test', $link);
if (!$db_selected) {
die ('Impossible de sélectionner la base de données : ' . mysql_error());
}
$login= $_POST['login'];
$pass= $_POST['pass'];
echo "$login
";
echo "$pass
";
$verif= mysql_query("select user from utilisateurs where user like '$login'");
if (!$verif) {
echo "Pas de user
";}
else
{echo "le user existe";}
?>
$login= mysql_real_escape_string($_POST['login']);
$pass= $_POST['pass'];
echo "$login
";
echo "$pass
";
if ($verif mysql_query("select user from utilisateurs where user '$login'"))
{
if (mysql_rum_rows() === 0)
{
echo 'Pas de user
';
}
else
{
echo 'le user existe';
}
}
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org
Ensuite puisque toi tu veux une comparaison absolu utilise = plutot que like.. (et surtout échappe tes données)
Et puis toi tu vérifie si la requête aboutie bien... même si elle retourne rien ça veut pas dire une erreur, tu ne compare pas la bonne chose... tu dois comparer le nombre de rangés retournées (ou comparer le string avec un fetch)...
Exemple:
$login = mysql_real_escape_string($_POST['login']);
$pass= $_POST['pass'];
echo "$login
";
echo "$pass
";
if ($verif mysql_query("select user from utilisateurs where user '$login'"))
if (mysql_rum_rows() === 0)
{
echo 'Pas de user
';
}
else
{
echo 'le user existe';
}
}
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org
juste une précision :
"même si elle retourne rien ça veut pas dire une erreur, tu ne compare pas la bonne chose"Si...quand les utilisateurs se loggaient tout le temps, cela voulait dire que ta requête ne générait pas d'erreur SQL : ta requête était bonne. Mais comme le dit Yoman par contre...cela ne veut pas dire que l'utilisateur existait dans ta base, simplement que la requête générait une erreur (mauvais SQL par exemple) : $req mysql_query(requête); > $req sera égal à true si la requête est bonne.
=> $req sera égal à false si la requête génère ne erreur.
La phrase est fausse ;-) Mais la solution est bonne.
@malalam: je me suis sans doute mal exprimé, je voulais dire que si la requête ne retournait aucun résultat, alors si elle était bien formulé elle ne générait pas automatiquement une erreur (retour false), donc sa comparaison de $verif comme boolean n'était pas suffisante... bref tu as tout de même vu où je voulais en venir :)
@krevette235: Ouais j'ai tappé ça a la vite, quelques petites fautes désolé
-------------------
Vous cherchez un hebergement Php/MySQL Gratuit et sans publicités ??
Et bien c'est la : www.e3b.org