Articles - PHP

Site Web avec PHP et MySQL

  |   29104  |  Poster commentaire  |  PHP
Sommaire :

Protégez un dossier avec .htacces



Créer le fichier .htacces



Créer un fichier avec le nom ".htacces" dans le dossier et mettez-y le contenu suivant :

Code :

AuthName "Entrez vos identifiants"
AuthType Basic
AuthUserFile "/home/site/www/admin/.htpasswd"
Require valid-user


AuthName : c'est le texte qui invitera l'utilisateur à inscrire son login et son mot de passe. Vous pouvez personnaliser ce texte comme bon vous semble ;
AuthUserFile : c'est le chemin absolu vers le fichier .htpasswd (que vous mettrez dans le même répertoire que le .htaccess).

Pour trouver le chemin absolu d'un fichier, utilisez la fonction PHP realpath
Code PHP :
<?php echo realpath('fichier.php'); ?>


Créer le fichier .htpasswd



Le .htpasswd va contenir la liste des personnes autorisées à accéder aux pages du dossier. On y inscrit une personne par ligne, sous cette forme :

Code :
login:mot_de_passe_crypté


Pour crypter un mot de passe :
Code PHP :
<?php echo crypt('kangourou'); ?>


Ci-dessous une page php permettant de crypter automatiquement les mots de passe et d'afficher la ligne à copier dans .htpasswd :

Code PHP :
<?php
if (isset($_POST['login']) AND isset($_POST['pass']))
{
    $login = $_POST['login'];
    $pass_crypte = crypt($_POST['pass']); // On crypte le mot de passe
 
    echo '<p>Ligne à copier dans le .htpasswd :<br />' . $login . ':' . $pass_crypte . '</p>';
}
 
else // On n'a pas encore rempli le formulaire
{
?>
 
<p>Entrez votre login et votre mot de passe pour le crypter.</p>
 
<form method="post">
    <p>
        Login : <input type="text" name="login"><br />
        Mot de passe : <input type="text" name="pass"><br /><br />
 
        <input type="submit" value="Crypter !">
    </p>
</form>
 
<?php
}
?>