C'est très simple. Il suffit de faire un formulaire avec deux champs correspondant au login et au mot de passe rentrés par l'utilisateur et, après la validation du formulaire, de dire au serveur : "Si l'utilisateur a tapé ce nom d'utilisateur et ce mot de passe, la partie secrète de la page apparaît. Si l'utilisateur a tapé autre chose que ce nom d'utilisateur et ce mot de passe, il lui apparaît en pleine face "Méchant, tu es un traître, tu n'as pas tapé le bon nom d'utilisateur et/ou le bon mot de passe"."
Ce qui, traduit en php, donne
<?
//On vérifie si le mot de passe et l'identifiant existent,c'est-à-dire qu'on vérifie que le formulaire a bien été validé
if (isset($_POST['mot_de_passe']) AND isset($_POST['identifiant']))
{
$mot_de_passe = $_POST['mot_de_passe'] AND $ident = $_POST['ident'];
}
else
{
$mot_de_passe ="" AND $ident ="";
}
//On dit quel nom d'utilisateur et quel mot de passe sont les bons
if ($mot_de_passe=="bonmotdepasse" AND $ident=="bonidentifiant")
{
// On donne le texte secret
echo "Tu as gagné ! Ce texte est le texte secret.";
}
else
{
// On donne le texte que tout le monde peut lire
echo "Méchant, tu es un traître, tu n'as pas tapé le bon utilisateur et/ou le bon mot de passe";
}
?>
Tout est très bien expliqué en détail sur le site du zero (que j'aime beaucoup)
Et puis un jour j'ai eu envie de protéger par mot de passe non pas une page, mais plusieurs. Par exemple, un répertoire entier.
Et vu que j'étais justement en train de créer un espace d'administration pour mon site et qu'il faudrait bien sûr, à terme, le protéger pour que personne ne puisse modifier mon site à ma place (non mais !), j'ai eu l'idée d'essayer le .htaccess.
Le fichier .htaccess permet diverses choses et notamment de protéger un répertoire à l'aide d'un mot de passe.
Tout ce que permet de faire le .htaccess est expliqué sur ce lien.
Pour protéger un répertoire par mot de passe, il faut créer deux fichiers avec le bloc-notes : un fichier .htaccess et un fichier .htpasswd.
Dans le fichier .htaccesss, il faut taper :
AuthName "Le texte que verra l'utilisateur quand il voudra aller sur le répertoire protégé"
AuthType Basic
AuthUserFile "/home/user/public_html/admin/.htpasswd"
Require valid-user
A côté de AuthUserFile il faut mettre entre les guillemets le lien absolu renvoyant vers le fichier .htpasswd.
(Pour trouver ce lien absolu, on peut utiliser la fonction PHP realpath.)
Dans le fichier .htpasswd, il faut taper simplement :
nomdutilisateur:motdepassecrypte
Il vaut mieux que le mot de passe soit crypté pour plus de sécurité. On peut crypter le mot de passe en utilisant la fonction PHP crypt.
Ensuite, on met les deux fichier .htaccess et .htpasswd sur le serveur du site, à la racine du dossier que l'on souhaite protéger.
Tout cela est mieux expliqué et plus en détails sur le site du zero
Et maintenant, lorsque quelqu'un veut aller sur mon dossier admin, il y a une jolie fenêtre qui lui demande de taper un nom d'utilisateur et un mot de passe. Et il n'y a que moi qui les connais, héhé !