Probleme dans un espace membre

Nouveau WRInaute
bonjour,

j'ai crée un espace membre, si le login + pass sont correct l'utilisateur pas se loguer sinon il ne peut pas accéder a la page, le probleme c'est que je peux pas me loguer dans les 2 cas, toujours me donne le message d'echec, voila le code:
Code:
<?

$host = 'localhost';
$user = 'root';
$pass = '';
$db_name = 'test';
$table_name = 'admin';

if(isset($_POST['date'])) $date = $_POST['date'];
else $date = '';
if(isset($_POST['hour'])) $hour = $_POST['hour'];
else $hour = '';
if(isset($_POST['login'])) $login = $_POST['login'];
else $login = '';
if(isset($_POST['passwd'])) $passwd = $_POST['passwd'];
else $passwd = '';

$login = strtolower(trim(htmlentities($_POST['login'], ENT_QUOTES))); 
$passwd = strtolower(trim(htmlentities($_POST['passwd'], ENT_QUOTES))); 

if ($login == ''){ //nom du champ1
echo("<font face=verdana size=2>Username field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}

elseif ($passwd == ''){ //nom du champ1
echo("<font face=verdana size=2>Password field is empty</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
echo("<a href=\"javascript:history.back()\" class=navfont> Return </a>");
}
else
{
$connection = mysql_connect($host, $user, $pass) or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = 'SELECT * FROM admin WHERE login = "$login" AND passwd = "$passwd"';
$result = mysql_query($sql,$connection) or die(mysql_error());
//get the number of rows in the result set
$num = mysql_num_rows($result);
//print a message or redirect elsewhere, based on result
if ($num != 0) {
$_SESSION['login'] = $login;
$_SESSION['passwd'] = $passwd;
echo 'Welcome'.$login;
} 
else 
{
echo 'Go Out';
}
//if (!isset($_SESSION['login'])) {
  //echo 'Vous n\'êtes pas autoriser à acceder à cette zone';
//}
}

?>
 
WRInaute occasionnel
Bien le bonjour,

Je suis surpris que tu n'ais pas eu de réponse plus tôt, surtout pour une erreur de quote !
Enfin bon, voici ce qui ne va pas :

Non valide :
Code:
$sql = 'SELECT * FROM admin WHERE login = "$login" AND passwd = "$passwd"';

Valide :
Code:
$sql = "SELECT * FROM admin WHERE login = '$login' AND passwd = '$passwd'";

Le reste devrait fonctionner comme il faut ;)
 
WRInaute discret
Pour comprendre pourquoi celà ne marche pas il faut savoir que les guillemets ' ne permettent pas de mettre des variables à l'intérieur , '$var' comprends le texte "var".
Ce n'est pas le cas des guillemets " qui eux permettent de mettre des variable que php va interpréter.

Note aussi que 'xxx'.$var.'xxx' marche, c'est équivalent à "xxx $var xxx".
 
Discussions similaires
Haut