Session pour sécuriser l'accès aux pages

Modifions la page login.php pour ajouter la sauvegarde du login et passwd dans une session
---
  1. <?php
  2. // On définit un login et un mot de passe de base pour tester notre exemple. Dans un autre exemple nous verrons comment interroger vune base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site
  3. $login_valide = "nom";  
  4. $pwd_valide = "pass";  
  5.  
  6. // on teste si nos variables sont définies
  7. if (isset($_POST['login']) && isset($_POST['pwd'])) { 
  8.  
  9.       // on vérifie les informations du formulaire, à savoir si le pseudo saisi est bien un pseudo autorisé, de même pour le mot de passe
  10.       if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']) { 
  11.             // dans ce cas, tout est ok, on peut démarrer notre session
  12.  
  13.             // on la démarre :)
  14.             session_start (); 
  15.             // on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
  16.             $_SESSION['login'] = $_POST['login']; 
  17.             $_SESSION['pwd'] = $_POST['pwd']; 
  18.  
  19.             // on redirige notre visiteur vers une page permise
  20.             header ('location: page_ok.php'); 
  21.       } 
  22.       else { 
  23.          // Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
  24.          echo '<body onLoad="alert(\'Vous n'êtes pas membre...\')">'; 
  25.          // puis on le redirige vers la page d'accueil
  26.          echo '<meta http-equiv="refresh" content="0;URL=index.htm">'; 
  27.       }  
  28. }  
  29. else { 
  30.       echo 'Les variables du formulaire ne sont pas déclarées.';  
  31. }  
  32. ?> 
---
après un premier appel à login au moyen du formulaire essayer de diriger le navigateur directement vers login.php que constater vous?

Toutes les pages qui doivent être sécurisées auront cette forme

  1. <?php
  2. // On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
  3. session_start ();  
  4.  
  5. // On récupère nos variables de session
  6. if (isset($_SESSION['login']) && isset($_SESSION['pwd'])) { 
  7. //quelques ligne à titre d'exemple
  8.       // On teste pour voir si nos variables ont bien été enregistrées
  9.       echo '<html>'; 
  10.       echo '<head>'; 
  11.           echo '<title>Page permise pour l'utilisateur</title>'; 
  12.       echo '</head>'; 
  13.  
  14.       echo '<body>'; 
  15.       echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est '.$_SESSION['pwd'].'.'; 
  16.       echo '<br />'; 
  17.  
  18.       // On affiche un lien pour fermer notre session
  19.       echo '<a href="./logout.php">Déconnection</a>';  
  20. }  
  21. else { 
  22.       echo 'Vous n'êtes pas autorisé ...';  
  23. }  
  24. ?> 

  • Nettoyer la session

    1. <?php
    2. // On démarre la session
    3. session_start ();  
    4.  
    5. // On détruit les variables de notre session
    6. session_unset ();  
    7.  
    8. // On détruit notre session
    9. session_destroy ();  
    10.  
    11. // On redirige le visiteur vers la page d'accueil
    12. header ('location: index.htm');  
    13. ?> 
    ---

    Comments