OVH Cloud OVH Cloud

Authentification et les headers...

4 réponses
Avatar
maxx
Salut,

Je veux utiliser les authentifications par header (en utilisant des
en-têtes HTTP avec PHP), et j'ai de gros problème pour récupérer
les variables "PHP_AUTH-*".
Voila mon code :

---------------------------------------------------------------------------------
<?php
function authentificate() {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
echo 'Texte utilisé si le visiteur utilise le bouton
d\'annulation';
exit;
}
include("ffrs_mysql-2.inc.php");
$sql = new MyDB();

$userauth $sql->getAuthUser($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']);

if ($userauth == ($_SERVER['PHP_AUTH_USER']))
{
echo "c bon";
include("adduserAdminForm.php");
print_r ($_SERVER);
}
else
{
authentificate();
}
?>
---------------------------------------------------------------------------------

Dans ce cas, la fenetre d'authentification ne s'ouvre pas et je passe
outre l'authentification. D'un point vue log, le fichier "error.log"
m'indique qu'il recupére une variable "userauth" vide (evidement
puisque le popup ne s'est pas ouvert). Seulement, lorsque je remplace
"$userauth" par "maxx" par exemple, la fenetre d'authentification
s'ouvre sans aucun souci et je peux m'identifier :-(

Merci d'avance

4 réponses

Avatar
Bobe
maxx nous a dit le 12.07.2005 16:43:
D'un point vue log, le fichier "error.log"
m'indique qu'il recupére une variable "userauth" vide (evidement
puisque le popup ne s'est pas ouvert). Seulement, lorsque je remplace
"$userauth" par "maxx" par exemple, la fenetre d'authentification
s'ouvre sans aucun souci et je peux m'identifier :-(

Merci d'avance


Ajouter un signe égal après $userauth dans la ligne suivante:
$userauth
$sql->getAuthUser($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']);

À moins que ce ne soit une faute de frappe de votre part dans votre
message ?

--
Aurélien Maille

"la vie d'un geek est un combat perpétuel contre l'imperfection"

Avatar
maxx
maxx nous a dit le 12.07.2005 16:43:
D'un point vue log, le fichier "error.log"
m'indique qu'il recupére une variable "userauth" vide (evidement
puisque le popup ne s'est pas ouvert). Seulement, lorsque je remplace
"$userauth" par "maxx" par exemple, la fenetre d'authentification
s'ouvre sans aucun souci et je peux m'identifier :-(

Merci d'avance


Ajouter un signe égal après $userauth dans la ligne suivante:
$userauth
$sql->getAuthUser($_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']);

À moins que ce ne soit une faute de frappe de votre part dans votre
message ?


C'est une erreur de frappe de ma part dans le poste... Sur mon
application, il y est bien.


Avatar
Hughes Monget
Bonjour,

$userauth $sql->getAuthUser($_SERVER['PHP_AUTH_USER'],
$_SERVER['PHP_AUTH_PW']);


Le code précédent devrait renvoyer les notices:
Undefined index: PHP_AUTH_USER
Undefined index: PHP_AUTH_PWD

A priori, la première fois que l'on arrive sur la page,
ces clefs ne sont pas définies dans le tableau $_SERVER.

Il faudrait donc tester leur existence par un "isset"
quelque part dans votre code.


HTH

--
hughes monget

Avatar
maxx
Personne n'a une idée???