Authentification redirection

Fermé
daggoon Messages postés 5 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 26 octobre 2008 - 9 sept. 2008 à 14:46
daggoon Messages postés 5 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 26 octobre 2008 - 9 sept. 2008 à 15:04
Bonjour,

j'ai crée un script php qui permet une redirection vers un page différente selon l'utilisateur. Quand chaque utilisateur rentre son login et son mot de passe, il arrive bien à sa page.
Mais si j'entre un mauvais mot de passe ou un mauvais login, j'obtiens çà:


Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 2 in /mnt/140/sdb/1/c/nom_du_site/checklogin.php on line 21
mauvais nom ou mauvais mot de passe

Voici mon script

<?php
$host="localhost"; // Host name
$username="XXXXX"; // Mysql username
$password="XXXXXX"; // Mysql password
$db_name="XXXXXX"; // Database name
$tbl_name="membres"; // Table name

// Connect to server and select databse.
$link=mysql_connect("$host", "$username", "$password")or die("connexion impossible");
mysql_select_db("$db_name")or die("impossible de se connecter à la base de données");

// username and password sent from signup form
$myusername=$_POST['myusername'];
$mypassword= $_POST['mypassword'];

$encrypted_mypassword=md5($mypassword);

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$encrypted_mypassword'";
$result=mysql_query( $sql);

$destination= mysql_result ($result,"destination");


// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count>0) {
session_register("myusername");
session_register("mypassword");
$_SESSION['auth'] = 1;
setcookie("myusername", $_POST['myusername']);
header("location:$destination");
}
else {
echo ("mauvais nom ou mauvais mot de passe");
}

?>

Merci de votre aide

3 réponses

Bonjour

Normal, s'il n'y a aucun résultat à mysql_query, tu ne peux pas extraire de résultat avec mysql_result.

Tu devrais utilser mysql_result qu'après avoir testé if ($count>0). D'ailleurs, tu n'en as pas besoin avant. D'ailleurs, tu as oublié un paramètre : $destination= mysql_result ($result,0,"destination");
0
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
9 sept. 2008 à 15:01
Salut

cette ligne au milieu de ton code

$destination= mysql_result ($result,"destination");

coupe la et met la ici

if($count>0) {
$destination= mysql_result ($result,"destination");
session_register("myusername");
session_register("mypassword");
$_SESSION['auth'] = 1;
setcookie("myusername", $_POST['myusername']);
header("location:$destination");
}

tu ne doit faire un mysql_result que si c'est bon et non pas tous le temps
0
daggoon Messages postés 5 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 26 octobre 2008
9 sept. 2008 à 15:04
Merci beaucoup à tous les 2. Mon problème est résolu :)))
0