Verifier un login et password [php/mysql]
Posté : 08 déc. 2006, 04:22
Bonjour à tous,
Je débute en php et j'essaye d'adapter un code permettant de créer une page de login, pour l'enregistrement des utilisateurs pas de problême, la page fonctionne bien et les infos sont correctement enregistrées dans la base de donnée par contre lorsque j'essaye de vérifier l'existence et la validité du password ca ne fonctionne pas.
Voici mon code:
Le formulaire d'enregistrement est sur la page: login.php qui appelle la page member.php une fois le formulaire posté.
Voici mon formulaire d'enregistrement:
C'est sur le control du password que je seche, ici la verification est toujours négative.
J'ai essayé de changer le control du password en utilisant un code similaire à celui du controle du username:
Merci d'avance pour votre aide.
Je débute en php et j'essaye d'adapter un code permettant de créer une page de login, pour l'enregistrement des utilisateurs pas de problême, la page fonctionne bien et les infos sont correctement enregistrées dans la base de donnée par contre lorsque j'essaye de vérifier l'existence et la validité du password ca ne fonctionne pas.
Voici mon code:
Le formulaire d'enregistrement est sur la page: login.php qui appelle la page member.php une fois le formulaire posté.
Voici mon formulaire d'enregistrement:
<a href="register_form.php">Not a member?</a>
<form method=post action="member.php">
<table bgcolor=#cccccc>
<tr>
<td>Username:</td>
<td><input type=text name=username></td>
</tr>
<tr>
<td>Password:</td>
<td><input type=password name=passwd></td></tr>
<tr>
<td colspan=2 align=center>
<input type=submit value="Log in"></td>
</tr>
</table>
</form>
Le code de validation de l'utilisateur est sur cette page, member.php
if(!$_POST['username'] | !$_POST['passwd'])
{
do_html_header();
echo'<h3>Sorry</h3>You did not fill in a required field.';
die();
}
if (!get_magic_quotes_gpc())
{
$_POST['username'] = addslashes($_POST['username']);
}
$user_check = $db_object->query("SELECT username FROM user WHERE username = '".$_POST['username']."'");
if (DB::isError($user_check) || $user_check->numRows() == 0)
{
do_html_header();
echo'<h3>Sorry</h3>That username does not exist in our database.';
die();
}
$info = $user_check->fetchRow();
$_POST['passwd'] = stripslashes($_POST['passwd']);
$info['passwd'] = stripslashes($info['passwd']);
$_POST['passwd'] = md5($_POST['passwd']);
if ($_POST['passwd'] != $info['passwd'])
{
do_html_header();
echo'<h3>Sorry</h3>Incorrect password, please try again.';
die();
}
$_POST['username'] = stripslashes($_POST['username']);
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['passwd'];
$db_object->disconnect();
echo'Welcome'.$_POST['username'];
A ce point la verif de la premiere condition marche nickel, la verification de l'existence du username dans la base de donnée aussi.C'est sur le control du password que je seche, ici la verification est toujours négative.
J'ai essayé de changer le control du password en utilisant un code similaire à celui du controle du username:
$_POST['passwd'] = stripslashes($_POST['passwd']);
$_POST['passwd'] = md5($_POST['passwd']);
$pass_check = $db_object->query("SELECT passwd FROM user WHERE passwd = '".$_POST['passwd']."'");
if (DB::isError($pass_check) || $pass_check->numRows() == 0)
{
do_html_header();
echo'<h3>Sorry</h3>Incorrect password, please try again.';
die();
}
Mais rien à faire, je ne vois pas ou est mon erreur.Merci d'avance pour votre aide.