Si vous utilisez l'instruction Header("WWW-Authenticate: . . . pour authentifier les utilisateurs sur votre site, cela ne fonctionne que si PHP tourne comme module d' Apache.
Le user et le mot de passe sont retournées dans les variables PHP_AUTH_USER.et $PHP_AUTH_PW.
Cette configuration de PHP est cependant cause d'instabilités du serveur et de nombreux hébergeurs propose des solutions avec PHP s'exécutant en CGI.
Lors de l'exécution en mode CGI, PHP ne sait pas récupérer les informations d'authentification d'Apache et les deux variables restent non affectée.
Voici donc un moyen détourné de récupérer cette information.
Placez dans la racine de votre site un fichier .htaccess avec le code suivant (ou ajoutez le au fichier existant )
RewriteEngine on
RewriteCond %{HTTP:Authorization} ^Basic.*
RewriteRule (.*) $1?Authorization=%{HTTP:Authorization} [QSA,L]
Le script d'authentification
Le code suivant est à placé en début de vos pages à protéger
(Ce script utilise la fonction header --> rien ne peut etre affiché avant)