Mon code pour authentifier le user ne marche
Résolu
parvn
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
parvn Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
parvn Messages postés 49 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai mon code pour authentifier l'administrateur du guestbook, qui ne marche pas, il me fais bien apparaitre les deux champs pour mettre le username et le password, mais quand je clique sur ok apres avoir inserer les donnees rien ne seproduit il m'invite toujours a inserer mon username et password.
Voici mon code:
<?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'];
authenticate("Secure Area", "Please enter a username and password");
if (empty($login) || empty($password)){
echo "your username and password please\n";
}
if(!empty($login) && !empty($password)) {
$query = "select * from guestbook_admin where username = '$login' and password=password('$password')";
$result = mysql_result($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";
?>
j'ai mon code pour authentifier l'administrateur du guestbook, qui ne marche pas, il me fais bien apparaitre les deux champs pour mettre le username et le password, mais quand je clique sur ok apres avoir inserer les donnees rien ne seproduit il m'invite toujours a inserer mon username et password.
Voici mon code:
<?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'];
authenticate("Secure Area", "Please enter a username and password");
if (empty($login) || empty($password)){
echo "your username and password please\n";
}
if(!empty($login) && !empty($password)) {
$query = "select * from guestbook_admin where username = '$login' and password=password('$password')";
$result = mysql_result($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";
?>
A voir également:
- Mon code pour authentifier le user ne marche
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
4 réponses
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.
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.
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.
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";
?>
Je ne comprend pas