Mon code pour authentifier le user ne marche
Résolu/Fermé
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
-
11 août 2009 à 10:17
parvn Messages postés 49 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 7 mai 2012 - 12 août 2009 à 08:56
parvn Messages postés 49 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 7 mai 2012 - 12 août 2009 à 08:56
A voir également:
- Mon code pour authentifier le user ne marche
- Le code ascii - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code blocks free - Télécharger - Langages
- Voici du code ascii : 39 2d 3f 3d 34 décodez-le et résolvez l'énigme trouvée. - Forum Loisirs / Divertissements
4 réponses
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
11 août 2009 à 11:07
11 août 2009 à 11:07
Bonjour,
Ton erreur vient de cette ligne :
Ce n'est pas mysql_result mais mysql_query qu'il faut faire. Si tu n'as pas encore exécuté ta requête SQL, tu ne peux pas en récupérer le résultat ;)
Ton code devrait donc être comme ceci :
As-tu bien ouvert ta connexion à ta base de donnée avant d'essayer d'exécuter ta requête SQL ?
Si oui, il faut bien penser à la fermer avant la fin de ton script, si tu las laisse ouvert ça risque de te poser problème par la suite.
Ton erreur vient de cette ligne :
$result = mysql_result($query);
Ce n'est pas mysql_result mais mysql_query qu'il faut faire. Si tu n'as pas encore exécuté ta requête SQL, tu ne peux pas en récupérer le résultat ;)
Ton code devrait donc être comme ceci :
$query = "select * from guestbook_admin where username = '$login' and password=password('$password')"; $result = mysql_query($query); if ($result != null && (mysql_num_rows($result) == 1) ) { list($valid_user) = mysql_fetch_row($result); echo " welcome mr $login\n"; }
As-tu bien ouvert ta connexion à ta base de donnée avant d'essayer d'exécuter ta requête SQL ?
Si oui, il faut bien penser à la fermer avant la fin de ton script, si tu las laisse ouvert ça risque de te poser problème par la suite.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
11 août 2009 à 15:56
11 août 2009 à 15:56
En fait j'ai du mal à comprendre où tu récupère ton user et mot de passe que tu as tapé, à part ici :
Mais comme ce code est interprété coté serveur, tes variables la première fois sont nulles, donc tu n'obtiens rien dans $login et $password, et tes tests ne passent pas.
Je dirai qu'il faut ré-organiser ton script.
$login=$_SERVER['PHP_AUTH_USER']; $password=$_SERVER['PHP_AUTH_PW'];
Mais comme ce code est interprété coté serveur, tes variables la première fois sont nulles, donc tu n'obtiens rien dans $login et $password, et tes tests ne passent pas.
Je dirai qu'il faut ré-organiser ton script.
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
12 août 2009 à 08:41
12 août 2009 à 08:41
Merci ok ça marche maintenant, c'etait ça le probleme j'ai reorganise le code et a present c'est ok.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
12 août 2009 à 08:53
12 août 2009 à 08:53
Poste ton code pour que les gens qui lisent ce sujet puisse avoir l'intégralité de la réponse, au cas où ils aient le même soucis un jour.
Merci.
Merci.
parvn
Messages postés
49
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
7 mai 2012
12 août 2009 à 08:56
12 août 2009 à 08:56
ok voici mon code qui marche sans probleme:
<?php
include "connection.php";
function authenticate ($realm="Secure Area"
,$errmsg="Please enter a username and password") {
Header("WWW-Authenticate:Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
die($errmsg);
}
$login=$_SERVER['PHP_AUTH_USER'];
$password=$_SERVER['PHP_AUTH_PW'];
if (empty($login) || empty($password)){
authenticate("Secure Area", "Please enter a username and password");
}
else {
$query = "select * from guestbook_admin where username = '$login' and password=password('$password')";
$result = mysql_query($query);
if ($result) {
list($valid_user) = mysql_fetch_row($result);
echo " welcome mr $login\n";
}
if (!$result || empty($valid_user)) {
authenticate($realm,$errmsg,"query");
}
}
print "<p><b>Editing as $login</b></p>\n";
?>
<?php
include "connection.php";
function authenticate ($realm="Secure Area"
,$errmsg="Please enter a username and password") {
Header("WWW-Authenticate:Basic realm=\"$realm\"");
Header("HTTP/1.0 401 Unauthorized");
die($errmsg);
}
$login=$_SERVER['PHP_AUTH_USER'];
$password=$_SERVER['PHP_AUTH_PW'];
if (empty($login) || empty($password)){
authenticate("Secure Area", "Please enter a username and password");
}
else {
$query = "select * from guestbook_admin where username = '$login' and password=password('$password')";
$result = mysql_query($query);
if ($result) {
list($valid_user) = mysql_fetch_row($result);
echo " welcome mr $login\n";
}
if (!$result || empty($valid_user)) {
authenticate($realm,$errmsg,"query");
}
}
print "<p><b>Editing as $login</b></p>\n";
?>
11 août 2009 à 15:33
Je ne comprend pas