Page protégée par login et mot de passe

Résolu
cs_vremen Messages postés 2 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 28 mars 2009 - 26 mars 2009 à 16:52
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 - 27 mars 2009 à 04:33
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

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
26 mars 2009 à 20:20
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 -
3
jreaux62 Messages postés 195 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 24 octobre 2011 32
27 mars 2009 à 04:33
Voir (et adapter) :
http://www.phpcs.com/tutoriaux/PHP-ADMINISTRER-LIGNE-PROTECTION-PAGES_882.aspx

+ autres tutos sur les sessions, ...
3
Rejoignez-nous