Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

Protéger une page avec les sessions php - Cours php

Protéger une page avec les sessions php

Protéger une page avec les sessions php


Depuis la version 4.1.0 de PHP, on utilise la variable $_SESSION pour récupérer ou gérer tout les variables de session.
On s'en sert très souvent pour faire un accès sécurisé. Voici un rapide exemple de comment faire une page accéssible que via login et mot de passe.

Tout d'abord, le formulaire html ou l'on va entrer le login et mot de passe (form.html)
<p>Formulaire de connexion</p>
<form action="identification.php" method="post">
  Login : <input type="text" name="login" value="" /><br />
  Login : <input type="password" name="mdp" value="" /><br />
  <input type="submit" value="envoyer">
</form>


Puis, une page config.php dans lequel on va stocker le login et mot de passe de l'administrateur :
<?php
$_admin_pass 
md5('motdepasse'); // on crypt pour pouvoir comparer - plus securisé
$_admin_login 'login';
?>


Ensuite, la page qui va vous identifier : (identification.php)
<?php
session_start
(); // on initalise les sessions php

// on inclu la page de config
include("./config.php");

if(
$_POST && !empty($_POST['login']) && !empty($_POST['mdp']))
{
    
$login htmlentities($_POST['login'], ENT_QUOTES); 
    
$mdp htmlentities($_POST['mdp'], ENT_QUOTES);
    
    
// on crypt le mot de passe envoyer par le formulaire
    
$password_md5 md5($mdp);
  
    if((
$_admin_login == $login) && ($password_md5 == $_admin_pass))
    {
        
$_SESSION['_login'] = $login;
        
$_SESSION['_pass'] = $password_md5;

        echo 
'<p style="color:green">Connexion réussi! </p>';
        echo 
'<p><a href="./index.php">Page admin</a></p>';
    }
    else
    {
        echo 
'<p style="color:red">Mauvais login ou mot de passe</p>';
        include(
"form.html");
        exit();
    }
  
}
?>


Ensuite, il faut un code php qui va vérifié, sur chaque page que vous voulez protégé, que nous sommes bien connecté : (verif.php)
<?php
session_start
();

// on inclu la page de config
include("./config.php");

if(!isset(
$_SESSION['_login']) || !isset($_SESSION['_pass']))
{
    
// si on ne détecte aucune sessions, c'est que cette personne n'est pas connecté
    // on affiche le formulaire de connexion
    
echo '<p><b style="color:red">espace sécurisé</b><br />Connecté vous pour accéder à cette page</p>';
    include(
"./form.html");
    exit();
}
else
{
    
// les sessions existe ... reste à savoir si les informations sont correct ou non
    
if(($_admin_login != $_SESSION['_login']) || ($_SESSION['_pass'] != $_admin_pass))
    {
        echo 
'<p><b style="color:red">Votre connexion ne semble pas valide</b></p>';
        include(
"form.html");
        exit();
    }
}
?>


Pour finir, il faut une 1er page qui test si on est connecté ou non et qui affichera la page (ou une liste de page protégé). Appellons cette 1er page index.php :
<?php
include('./verif.php'); // si la vérification est ok : on aura accès au reste de la page.

echo '
<p>
    <b>Bonjour</b><br />
    Vous est connecté en tant que <b>'
.$_SESSION['_login'].'</b>
</p>'
;
?>


Ceci est vraiment un exemple assès basique de comment créer un petit espace protéger par login et mot de passe unique. Le système d'identification peut et devrai être améliorer dans un univers en production. On est dans un cadre d'apprentissage.

Si vous avez du mal à le mettre en place, le forum est ouvert.

Le 05/07/2008 par Sky
http://www.graphiks.net




Les commentaires
  • Le 04-06-2008, LaTueuse a écrit :
    Coucou, ton code fonctionne nikel mais une fois loggué je nepeux plus affiché le formulaire comment ça se fait??Merci

  •  
  • Le 08-04-2008, salima a écrit :
    bjr !
    j'ai aimé ce code mis moi je travaille av la base de données , cvd que l'utilisateur doit se connecter av son login et son mdp qui
    se trouvent ds la base !!
    Comment puis-je faire plzz c urgent !!

  •  
  • Le 18-03-2008, Choko2008 a écrit :
    Vraiment c'est génial !!!!!!!!!

  •  
  • Le 02-03-2008, cubase a écrit :
    ok c bon j'ai trouvé

  •  
  • Le 02-03-2008, cubase a écrit :
    bonjour,

    comment faire pour créer plusieurs identifiants et mots de passe ??

  •  

Nom :

Texte :

Recopier ce code : ici

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net