[Comportement serveur] Authentification HTTP avec MySql
Écrit par Bertrand | 27-07-2005

Ce comportment utilise la fonction header() de PHP pour demander une authentification au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables $PHP_AUTH_USER, $PHP_AUTH_PW contenant respectivement le nom d'utilisateur et le mot de passe. Ceux-ci sont ensuite comparées aux valeurs trouvées dans la table MySql.

Avertissement

Les fonctions d'authentification HTTP de PHP ne sont disponibles que si PHP est exécuté comme module Apache, et non pas sous la forme d'un CGI.

Vous pouvez déterminer cela en faisant un fichier de test PHP avec la fonction phpinfo() chez votre hébergeur.
Si dans le résultat, en début de fichier, vous ne voyez pas apparaitre cette mention Server API Apache mais à la place Server API CGI, vous ne pourrez pas utiliser ce comportement (valable pour Apache 1.3x, pas testé sous Apache 2.4x)

La comparaison du mot de passe s'effectue à l'aide de la fonction PHP md5().
Il est donc impératif qu'au moment de l'enregistrement de ce visiteur, ce mot de passe ait été rentré à l'aide de la même fonction! (Voir le comportement "Crypter un mot de passe").

Exemple de fenêtre d'authentification

L'interface du comportement

Dans le champ Texte à afficher, vous pouvez rentrer du HTML comme ci-dessous, proposant, en cas de refus, un nouvel essai :

<p align="center">Accès refusé</p>
<p align="center"><a href="<?php $_SERVER['PHP_SELF']?>">Nouvel essai</a></p>

 AuthHTTPSql.mxp AuthHTTPSql.mxp (11.24 KB)

 
Dernière mise à jour : 13-09-2006