Contexte
J'ai un Apache/2.2.15 (Win32) avec PHP/5.3.2 mis en place, l'authentification de manipulation.Impossible de récupérer les variables d'environnement Apache en PHP
<Directory /usr/www/myhost/private>
# core authentication and mod_auth_basic configuration
# for mod_authn_dbd
AuthType Basic
AuthName "My Server"
AuthBasicProvider dbd
# core authorization configuration
Require valid-user
# mod_authn_dbd SQL query to authenticate a user
AuthDBDUserPWQuery "SELECT Password,UserName,Realm,Access FROM authn WHERE user = %s"
</Directory>
L'authentification fonctionne correctement! Pas de problème.
Mais en ce qui concerne la documentation, tout champ supplémentaire retourné de la AuthDBDUserPWQuery sera mis en une AUTHENTICATION_fieldname variable dans l'environnement.
Avec phpinfo()
, je peux voir ces variables avec des valeurs correctes sous "Environnement Apache".
AUTHENTICATE_USERNAME
AUTHENTICATE_REALM
AUTHENTICATE_ACCESS
Problème
Je ne peux pas récupérer ces variables d'environnement de mon php.
1 <?php
2 $Access = apache_getenv('AUTHENTICATE_ACCESS',true);
3 var_dump($Access);
4 ?>
La ligne 3 affiche bool (false) indiquant que la variable n'a pas été trouvée!
Cependant, si je change pour une autre variable d'environnement Apache telle que 'HTTP_HOST' cela fonctionne.
..et oui, j'ai aussi essayé getenv()
, même résultat.
Il est également noté que le serveur Apache doit être compilé avec APR 1.3.0 pour fonctionner. J'ai utilisé la construction Apache msi de httpd.apache.org et il semble être compilé avec APR au-dessus de la version 2. Puisque je peux les voir avec phpinfo()
ils doivent être accessibles depuis PHP.
* \ [♦ note: Voir [historique des révisions] (http://stackoverflow.com/posts/4308886/revisions) pour le contexte de ce commentaire.] * Nous ne parlons généralement pas de l'anglais de quelqu'un (le tien est joli bon) et si le formatage de votre code aspirait quelqu'un l'éditerait probablement donc c'est bien lisible. De plus, ce n'est pas l'endroit où les gens sont invités à google/rtfm - googling/rtfming est ce que les gens qui répondent pourraient faire comme ils vont obtenir + représentant pour cela, ce qui entraînerait très probablement -rep. : p – ThiefMaster
Je n'ai pas de réponse à votre question, mais +1 pour avoir la question la mieux structurée que j'ai jamais vue sur SO. –
Question parfaitement valide, pas besoin d'être si défensive. :) Les réponses RTFM sont généralement réservées à beaucoup, * beaucoup * de pires (non) questions. – deceze