PHP - Récupérer login et mot de passe passés par un .htaccess

Septembre 2016

Si vous avez protégé un dossier de votre site en utilisant un fichier .htaccess et que vous souhaitez récupérer dans vos pages PHP le login et le mot de passe que l'utilisateur a saisis, il vous suffit d'utiliser ces variables :
$_SERVER['PHP_AUTH_USER'] // pour le login   
$_SERVER['PHP_AUTH_PW'] // pour le mot de passe


Cependant, elles ne fonctionnent qu'avec PHP 5.
Avec une version antérieure de PHP (4), seul le login est récupérable, par la variable :
$REMOTE_USER


/!\ IMPORTANT/!\

Je rajoute ces quelques lignes : sur le net, peu de personnes ont trouvé comment récupérer le login par un .htaccess sur les hébergements mutualisés sur OVH.

Rouzz sur www.z-f.fr donne la solution :

En réalité c'était OVH qui utilise PHP en script SGI et pas en module Apache, donc il zappe le header Authorization.
Solution :

mettre dans le .htaccess :
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

et ensuite echo $_SERVER['REMOTE_USER'];

Je pense que ça en aidera plus d'un qui à du mal :)
(Ceci peut être utile, par exemple, pour rediriger le visiteur sur une page différente selon son login)

A voir également :

Ce document intitulé «  PHP - Récupérer login et mot de passe passés par un .htaccess  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.