par
Ajoloca » 08 déc. 2006, 14:11
Bonjour,
Je crois que tu devrais procéder de manière inverse,
commencer par le plus simple (plus facile à comprendre)
et augmenter en complexité à mesure que tes compétences augmentent.
La proposition que je t'ai faite, dans l'état ne détaille pas l'erreur (itilisateur)
elle te permets simplement de savoir si le couple utilisateur - mot de passe existent dans ta base
(en réalité c'est ce qui t'interesse).
De plus je pense qu ta procédure contient une erreur de conception.
Tu selectionnes un utilisateur (ok) ensuite tu selectionnes un mot de passe,
qui te dit que l'utilisateur à saisi
son mot de passe.
Il aurait tres bien choisr celui d'un autre que ta procédure fonctionnearait,
tu ne demandes que que ce mot de passe existe dans ta base.
La requête (que je t'ai proposé).
On ne va pas compter le nombre de rangs (mysql_num_rows()) mais voir le contenu de "existe", si "existe" vaut 0 c'est que ce couple (utilisateur-mot de passe) n'exitent pas dans la base.
Je suppose que dans ta base le mot de passe est haché par md5() comme ton code le laisse penser.
<?php
// Récupération des variables passées en POST
$webUser = isset($_POST['username']) ? $_POST['username'] : '';
$webUserPass = isset($_POST['passwd']) ? md5($_POST['passwd'] : '';
// Test sur la validité des valeurs
if (empty($webUser) || empty ($webUserPass)){
// Utilisateur ou mot de passe vide
exit();
}
$host = 'nom_serveur';
$user = 'MySQL_user';
$passWd = 'password';
$dbName = 'nom_base';
// Connexion au serveur
mysql_connect($host, $user, $passWd) or die ('Connexion au serveur ' .$host . ' Impossible<br />' . mysql_error());
// Sélection de la base de données
mysql_select_db($dbName) or die ('Sélection de la base impossible<br />' . mysql_error());
// Construction de la requête
$qry = $qry = "SELECT COUNT(*) AS existe FROM user WHERE username = '". $webUser ."' AND passwd = '" . $webUserPass . "'");
// Exécution de la requête
$result = mysql_query($qry) or die('ERR_SQL : ' . $qry . '<br />' . mysql_error());
if(! mysql_result($result, 0, 'existe')) {
do_html_header();
die('<h3>Sorry</h3>Username or Password does not exist.');
}
do_html_header();
echo'<h3>Welcome </h3>'.$webUser;
?>