Authentification PHP pour WWW-Authenticate

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 18 déc. 2005 à 18:06
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 - 19 déc. 2005 à 21:59
Bonjour,
je souhaiterais renseigné la variable PHP_AUTH_USER et $_SERVER
mais sans passer par le boite de dialogue du navigateur.
ex:
<?php
header( 'WWW-Authenticate: Basic' );
// ?
print_r( $_SERVER );
?>


Ce code ouvre fait ouvrir une boite de dialogue du navigateur, ensuite
la variable globale $_SERVER contient bien la variable PHP_AUTH_USER.
Comment puis-je avoir le même résultat sans passer par la boite de dialogue ?
Les buts finaux étant :
1. d'avoir directement ce nom d'utilisateur dans le log Apache
2. d'utiliser ma base de données pour les mots de passe (login/password saisis dans une page dédié).
3. éventuellement pouvoir déconnecter automatiquement l'utilisateur sans qu'il y ait besoin de fermer le navigateur.


Les objetifs 1 et 2 sont déjà fait par une autre méthode j'aimerais surtout avec ce login dans le log access_log d'Apache.


J'espère avoir été assez clair.


Merci votre aide.

11 réponses

Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
18 déc. 2005 à 18:30
Pour info, le plus proche que j'ai trouvé pour mon problème est le source suivant :
http://www.phpcs.com/code.aspx?id=28520
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
18 déc. 2005 à 20:23
Salut,

en quoi ta source ne convient pas ?

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
18 déc. 2005 à 21:26
Le login n'est pas présent dans le log Apache lors de l'accès à la page désirée.
Il n'est présent que lors de l'accès à la page contenant le source.
0
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 déc. 2005 à 20:08
Soit j'ais pas compris la question soit comme Coucou747 je vois pas où est le problème... tu fais un fichier passwd.php dans lequel tu fais deux define et que tu met dans un répertoire protégé par un htaccess deny from all...

et tu fais un fichier auth.php dans lequel tu met...

include_once('rep_protege/passwd.php');

if(MON_USER != '' || MON_PASSWD != ''){
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header('WWW-Authenticate: Basic realm="Authentification"');
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access to this page !';
exit();
} else {
if(MON_USER != '' && $_SERVER['PHP_AUTH_USER'] != MON_USER){
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access to this page !';
exit();
}
if(MON_PASSWD != md5($_SERVER['PHP_AUTH_PW'])){
header('HTTP/1.0 401 Unauthorized');
echo 'You can not access to this page !';
exit();
}
}
}

et tu appel cette page par un include dans toutes les pages à protéger... le haschage par md5 (dernier if) étant facultatif... .. .

après tu peux remplacer les define par une requete sql c'est pas compliqué... .. .

Tu veux que le membre puisse se déconnecter sans fermer le navigateur mais ça c'est pas possible via les variables serveur PHP_AUTH_USER et PHP_AUTH_PW... donc soit tu accepte cette technique d'authentification avec ces avantage et ces inconvénients soit tu te tourne vers un espace membre traditionnel qui utilise les variables de session... .. .

@ tchaOo°
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2005 à 20:19
Salut,


je crois que le problème est quand même très mal posé... que veux tu faire ???

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
19 déc. 2005 à 20:50
En effet, le problème est peut être mal posé.



lors d'une identification par .htaccess simple, c'est le navigateur qui
est en charge d'ouvrir une boîte de dialogue pour saisir un login/mot
de passe. Une fois identifié par cette méthode, le login est présent
dans le fichier access_log d'Apache (avec le paramètrage par défaut).



Je voudrais ne pas avoir recours à cette boite de dialogue du
navigateur mais avoir un moyen de renseigné ce login dans le log Apache.



Par exemple le code de kankrelune, se contente de la boite de dialogue
du navigateur ( via header('WWW-Authenticate: Basic
realm="Authentification"'); )



Mais sinon, l'objectif simple c'est d'avoir un identifiant par
utilisateur dans le log Apache (sans avoir à passer l'id dans l'url à
chaque fois genre index.php?id=123 )
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 déc. 2005 à 21:00
Salut,
alors c'est différent de ce que tu demandes...



header('Location: http://password:user@monsite.com');



ça nécéssite une redirection, mais ça doit marcher...

In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy

Mon site (articles sur la programmation et programmes)
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
19 déc. 2005 à 21:12
J'ai essayé quelque chose du genre directement dans l'URL du navigateur

Ca ne fonctionne plus avec les denièrnes version d'IE et j'ai un warning sous Firefox.



Par contre, je n'ai pas essayé avec un header de PHP.

Je vais tenter ma chance.
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
19 déc. 2005 à 21:29
C'est pas plus facile de se faire un fichier et d'inclure le pseudo du gars qui vient de se connecter dans ce fichier ?

Parce que éplucher un log apache, y'a rien de plus emmerdant :o
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
19 déc. 2005 à 21:56
webalizer est mon ami ;)
0
Hylvenir Messages postés 364 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 octobre 2006 2
19 déc. 2005 à 21:59
Et bien désolé coucou747 mais ça ne fonctionne pas :(

je vais cherche encore un peu avant de mon contenter d'autre chose.
0
Rejoignez-nous