Pour imposer la saisie d'un couple identifiant / mot de passe afin de rentrer dans un répertoire de votre site Internet, une des solutions est d'utiliser le fichier .htpasswd.
Pour cela il convient d'ajouter 2 fichiers au répertoire dont vous souhaitez limiter l'accès : .htaccess et .htpasswd.
Dans l'exemple suivant, nous supposeront que nous voulons restreindre par mot de passe, l'acc« es au répertoire admin de notre site Internet.
Fichier .htaccess apellant un fichier .htpasswd
AuthUserFile /home/monsite/admin/.htpasswd AuthName "Accès réservé" AuthType Basic <Limit GET POST> require valid-user </Limit>
AuthUserFile doit comprendre le chemin absolu vers votre fichier .htpasswd.
Pour connaitre ce chemin, créez un fichier temporaire, que vous nommerez path.php, insérez le code ci après :
<?php echo realpath('path.php'); ?>
et placez le fichier path.php dans votre répertoire /admin et enfin appelez le depuis votre navigateur pour récupére la valeur du chemin absolut;
Fichier .htpasswd
Créez le fichier .htpasswd et placez le dans le répertoire /admin. Ce fichier contiendra une liste de couple identifiant/mot de passe qui permettront aux utilisateurs de visiter le dossier admin.
Apparence de votre fichier .htpasswd :
identifiant1:mot-de-passe-crypte1 identifiant2:mot-de-passe-crypte2
Il existe pléthore de services en ligne pour crypter vos mot de passe, en voici un exemple.
Se déconnecter d'une connexion par .htpasswd
J'ai mis un moment avant de trouver la technique, cela dit, on se déconnecte automatiquement dès que le navigateur est fermé (Attention pas seulement la fenêtre du navigateur)
L'astuce consiste à créer un fichier deconnexion.php que l'on peut appeler via un lien depuis l'un des fichiers du répertoire admin.
Le fichier deconnexion.php redemande en fait les identifiants de connexion à l'utilisateur, puis le redirige vers la page de votre choix.
<?php header('WWW-Authenticate: Basic realm="Accès réservé"'); header('HTTP/1.0 401 Unauthorized'); echo '<script type="text/javascript"> window.location.href = "http://monsite.php"; </script>'; exit(); ?>
Laisser un commentaire
Participez-vous à la discussion?N'hésitez pas à contribuer!