Page 1 sur 1

pb d'identification HTTP

Posté : 28 août 2012 23:42
par istud
Bonjour,

Cela fait maintenant un an que j'utilise le cahier de texte Gepi sur Legtux.
Le cahier de texte a toujours été consultable par n’importe qui ayant l'adresse du site.

Depuis peu j'ai activé la consultation du cahier de texte avec identifiant et mot de passe. Mais cela ne marche pas.
Avec la communauté de Gepi, nous pensons que cela vient du côté Legtux.

En gros, lorsque on entre l'identifiant et le mot de passe, la boîte de dialogue ré-apparait toujours. (cf. ci-dessous)
Image

Je vous re-transmet le message d'un des développeur qui m'aide dans la communauté de Gepi:
"Le pb se situe effectivement au niveau du serveur, il faudrait le signaler aux administrateurs (de Legtux) en leur indiquant l'adresse du script ( http://cahier2texte.legtux.org/login_passwd.php ), lequel script est le copier-coller de l'exemple d'identification HTTP simple de la page http://www.php.net/manual/fr/features.http-auth.php"
Merci de votre aide
Cordialement,

stud

Re: pb d'identification HTTP

Posté : 29 août 2012 13:52
par hamza
Bonjour,

Est-ce que vous avez correctement saisi les informations de connexion dans votre fichier .htpasswd et surtout, avez-vous crypté votre mot de passe avant de le mettre dans votre fichier .htpasswd ?

Cordialement,

Re: pb d'identification HTTP

Posté : 29 août 2012 17:18
par Simon Le Guével
Bonjour,

@hamza : l'identification n'est ici pas traitée par Apache, mais par PHP.

@stud : effectivement, le problème est bien de notre côté.
Il vient de la façon dont notre Apache appelle PHP (CGI). Les variables données à Apache par votre navigateur ne sont pas transmises à PHP, d'où le nouveau prompt.
Pour que ça fonctionne, il va falloir adapter un petit peu vos scripts.

Premièrement, dans le .htaccess du même dossier, ajoutez :

Code : Tout sélectionner

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>
Ensuite, dans votre fichier PHP, il faut ajouter (avant l'utilisation des variables $_SERVER['HTTP_AUTH_USER'] et $_SERVER['HTTP_AUTH_PW']) :

Code : Tout sélectionner

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
Enfin, si la page login_passwd.php est vraiment une copie de l'exemple du manuel PHP, il faut remplacer

Code : Tout sélectionner

if (!isset($_SERVER['HTTP_AUTH_USER']))
par

Code : Tout sélectionner

if ($_SERVER['HTTP_AUTH_USER'] == NULL)
Voilà ! ;)

Re: pb d'identification HTTP

Posté : 04 sept. 2012 11:32
par Simon Le Guével
J'ai perdu l'auteur du fil ou bien ? :P

Re: pb d'identification HTTP

Posté : 04 sept. 2012 11:51
par Guillaume
Il a fait une demande d'inscription pour tester ce matin ;)