Warning: mysql_result()......
Résolu
tytyrael
-
tytyrael -
tytyrael -
Voici l'erreur qui met afficher
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 8 in C:\wamp\www\site\changepass.php on line 15
et voici mon code :
L'erreur porte donc sur " $passdata = mysql_result($rub,0); "
Autre info :
L'erreur n'apparait que lorsque les champs sont mal rempli (donc que l'utilisateur ou l'ancien mot de passe est incorrecte)
la requête en revanche fonctionne bien si l'ancien mot de passe et le compte existe
et le mot de passe est bien remplacer.
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 8 in C:\wamp\www\site\changepass.php on line 15
et voici mon code :
<?php
include_once("header.php");
if ($login<>"") {
function html ($val) {
return addslashes(stripslashes($val));
}
$pass = base64_encode(pack('H*', sha1($pass)));
$req1 = "SELECT password FROM accounts WHERE login = '" . html($login) . "' LIMIT 1";
$rub = mysql_query($req1, $connexion);
$passdata = mysql_result($rub,0);
if ($passdata != $pass)
{
$resultat = '<span style="color:red">Le mot de passe et/ou login indiqué ne correspond pas.</span>';
}
else
{
$newpass = base64_encode(pack('H*', sha1($newpass)));
$req2 = "UPDATE accounts SET password = '" . html($newpass) . "' WHERE login= '" . html($login) . "'";
$rub = mysql_query($req2, $connexion);
$resultat = '<span style="color:green">Votre mot de passe a bien été modifié.</span>';
}
}
?>
L'erreur porte donc sur " $passdata = mysql_result($rub,0); "
Autre info :
L'erreur n'apparait que lorsque les champs sont mal rempli (donc que l'utilisateur ou l'ancien mot de passe est incorrecte)
la requête en revanche fonctionne bien si l'ancien mot de passe et le compte existe
et le mot de passe est bien remplacer.
A voir également:
- Warning: mysql_result()......
- Warning your chassis has been opened ✓ - Forum Matériel & Système
- Cpu fan fail warning control - Forum BIOS
- Quota warning free - Guide
- Warning battery is low ✓ - Forum Matériel & Système
- Warning please insert usb key press any key to check - Forum PC fixe
2 réponses
Bonjour
mysql_result($rub,0); va chercher la première ligne de résultat de ta requête.
Mais s'il n'y a aucune ligne de résultat (login inconnu) $rub n'a pas de première ligne et mysql_result($rub,0); ne veut rien dire.
D'ailleurs, pourquoi chercher le password associé à un login, et ensuite vérifier que c'est le bon pasword ? Tu peux tout vérifier en une seule requête :
mysql_result($rub,0); va chercher la première ligne de résultat de ta requête.
Mais s'il n'y a aucune ligne de résultat (login inconnu) $rub n'a pas de première ligne et mysql_result($rub,0); ne veut rien dire.
D'ailleurs, pourquoi chercher le password associé à un login, et ensuite vérifier que c'est le bon pasword ? Tu peux tout vérifier en une seule requête :
$req1 = "SELECT COUNT(*) as cnt FROM accounts WHERE login = '" . html($login) . "' AND password ='$pass'";
$rub = mysql_query($req1, $connexion);
if (mysql_result($rub,0) >0) {
// connu
} else {
// inconnu
}