Page protégée par login et mot de passe [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 24 mars 2009
Statut
Membre
Dernière intervention
28 mars 2009
-
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
-
salut tous,
pourriez-vous m'aider svp. jè un souci sur mon code php pour les tests sur le login et le mot de passe. le problème se situe apparament sur les lignes en rouge et gras. le message d'erreur est :"Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 3 in C:\Program Files\EasyPHP 3.0\www\memoire\testconnexion.php on line 37"
je vous ai fais l'économie de la page formulaire.html où l'utlisateur entre les infos $login et $pwd

<?php
// Déclaration des variables utilisées
$login = $_POST['login'];
$pwd = $_POST['pwd'];
$valider = $_POST['valider'];
//$modifpwd = $_POST['modifpwd'];

// Initialisation des variables utilisées

$host = "localhost"; //"10.242.69.11"; // voir hébergeur
$user = "super"; // vide ou "root" en local
$pass = "super"; // vide en local
$bdd = "e_exploitation"; // nom de la BD

//connexion à la base
mysql_connect($host, $user, $pass) or die("la base est inaccessible, prière contacter l'Administrateur
");

//choix de la base bdd_eeploitation
mysql_select_db($bdd);

//extration des donnees
//$sql_pwd = "select password from users where username='$login'";
//$sql_login = "select count(*) as nbre from users where username='$login'";

$rep_pwd = mysql_query("select password from users where username='$login'");
$rep_login = mysql_query("select count(*) as nbre from users where username='$login'");

$pwd_result = mysql_result($rep_pwd,0,0);
$login_result = mysql_result($rep_login,0,0);

//comparaison des paramètres
if($login==''||$pwd=='')
{
echo "Le login et le mot de passe sont obligatoires ";
}
elseif($login_result = '0')//si le username n'existe pas
{
echo "Username incorrect! veuillez entrer un compte valide
";
}
elseif($pwd != $pwd_result)//si mot de passe incorrect
{
echo "Mot de passe incorrect!
";
}
else
{
if($pwd == $pwd_result)//si mot de passe correct
header("location:accueil.html");
exit;
}

mysql_close();

?>

2 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Salut Vremen,

Je n'ai pas le reste de ton script mais je pense que tu ne procède pas de la bonne façon.
Par exemple, que se passe t il si j'entre l'adresse suivante dans mon navigateur :
http://tonsite.com/accueil.html
Je pense avoir la réponse => j'y accède sans m'être identifié

Tourne toi vers les sessions, il y a des milliers d'exemples sur le web.

Pour tout de même répondre à ta question :
Quand il n'y a pas de résultat mysql_result($rep_pwd,0,0); plante car la ligne 0, champ 0 n'existe pas.
Il faudrait faire un COUNT() (comme ta seconde requête)

Cordialement,

Kohntark -
Messages postés
195
Date d'inscription
vendredi 13 juin 2008
Statut
Membre
Dernière intervention
24 octobre 2011
23
Voir (et adapter) :
http://www.phpcs.com/tutoriaux/PHP-ADMINISTRER-LIGNE-PROTECTION-PAGES_882.aspx

+ autres tutos sur les sessions, ...