2 Utilisateur(s) en ligne

Protéger plusieurs pages par mot de passe.

Par Patami


En php, deux solutions s'offrent à vous pour protéger des pages de votre site par mot de passe. Le plus simple, est d'utiliser un htaccess (fonctionne aussi pour toute page html, image, etc) qui lui protègera l'accès à tout le dossier dans lequel il se trouve et tous ses sous-dossiers.

  • 1ère méthode :

Pour créer un htaccess je vous conseille ce tuto : http://www.siteduzero.com/tuto-3-152-1- ... ccess.html

  • 2e méthode :

Toutes les pages que vous voulez protéger doivent avoir l'extension .php
Si vous êtes sous free, vous devez créer un dossier nommé "sessions" à la racine de votre site. Pour tout autre hébergeur assurez vous qu'il accepte les sessions php.

Créez un fichier nommé "acces.php" dans le même dossier que les pages à protéger.

Voici le contenu de ce fichier : (présentation basique, libre à vous de la modifier)

<?php
echo '<html>
<head><title>Accès à la partie privée</title>
</head>
<body>
<br /><br />La page à laquelle vous tentez d'accéder est privée !<br /><br />
<form name="formulaire" id="formulaire" method="post" action="'.htmlspecialchars($_GET['url']).'">
<p>Veuillez entrer le code d'accès : <input type="password" name="mdp" id="mdp" /></p>
<p><input name="submit" id="submit" type="submit" value="Accéder à la page !" /></p>
</form>
</body>
</html>';
?>

Ensuite, au début de toutes les pages à protéger, mettez ce code (juste avant la balise ) :

<?php
session_start();
if(isset($_SESSION['pass']) or isset($_POST['mdp']))
{

  if(isset($_POST['mdp']))
  {
  $_SESSION['pass']=htmlspecialchars($_POST['mdp']);
  }

  if($_SESSION['pass']!="coucou")
  {
  session_destroy();
  exit("Mot de passe incorrect !");
  }
   
}else{

Header('Location: acces.php?url='.$_SERVER['PHP_SELF'].'');

}

?>

Enfin, remplacez dans ce code le mot coucou par le mot de passe requis pour accéder à la page.
Une fois tout ceci fait, vos pages sont protégées !


Publié le: dimanche 27 décembre 2009 (1982 lectures)
Copyrights © par Oltana.net

Format imprimable

[ Retour ]