|
[ Cours php - les sessions php4 ]
Les
sessions consistent retenir des variables d'une page une autre pour
viter de rassigner sans cesse des informations. Elle peuvent par exemple permettre de crer un espace membre sans
utiliser les cookies. Cela est d'ailleurs plus scuris.
Les fonctions utiles pour les sessions :
- Dmarrer une session :
session_start(); - Enregistrer une variable de session
: session_register(); - Vrifier si une variable est dclare pour la session en cours
: session_is_registered(); - Destruction de la session en cours
: session_destroy(); - Destruction de toutes les variables pour la session en cours
: session_unset();
- Effacer une variable de session
: session_unregister(); - Obtenir le numro de session en cours
: session_id(); - Le nom de la session par dfaut (souvent c'est
PHPSESSID) : session_name();
On passe maintenant la pratique : cration d'un espace membre.
Voici le code
HTML du formulaire d'identification qui permettra d'entrer sur l'espace membre.
On appellera cette page
index.php :
|
<form method="post" action="verif.php"> <table
border="0" width="372" align="center"> <tr> <td
width="192"> <b>Votre login
(votre identifiant) :</b> </td> <td
width="170"> <input type="text" name="login"> </td> </tr> <tr> <td
width="192"> <b>Votre mot de passe :</b> </td> <td
width="170"> <input type="password" name="password"> </td> </tr> <tr> <td
colspan="2" width="366"> <input type="submit"
name="submit" value="Entrez sur votre
espace membre"> </td> </tr> </table> </form>
|
Aprs avoir envoy ce formulaire, nous rcuprons les valeurs pour
vrifier leur validite grce une seconde page que nous appellerons verif.php
Voici le code PHP qui fera cela :
|
<?php $login_sql ="tonwebmaster";
// On dfinit le login (pour l'exemple) $password_sql ="monpass"; // On dfinit
le mot de passe (pour l'exemple) // Les deux valeurs ci-dessus ont t,
par exemple, rcupres d'une base de donnes Mysql (ou autres),
o l'on stock les diffrents accs.
// On compare la valeur tape par l'utilisateur
($login) avec celle enregistre ($login_sql), idem pour le mot de passe. //
Cela permet de vrifier l'exactitude des informations entres
par le membre. if ($login=="$login_sql" && $password=="$password_sql"){ session_start(); // On dmarre la session session_register("login");
// On enregistre le login dans la session (attention, les variables
de session n'ont pas de signe dollar ($) ) session_register("password"); //
On enregistre le mot de passe dans la session
header("location :
index_membre.php"); // On redirige
ensuite la page actuelle vers l'accueil de l'espace membre. }
// FIN DU if ($login=="$login_sql" && $password=="$password_sql"){
// Sinon
(else) l'identification n'est pas russite. On affiche le
message d'erreur : else{echo "Erreur
d'identification. Veuillez entrer un login et un mot de passe valide.";} ?>
|
Avant d'afficher la page d'accueil de l'espace membre, des vrifications doivent
tre effectues pour ne pas que quelqu'un puisse accder cette page en allant
directement dessus.
Contenu de la page index_membre.php :
|
<?php session_start();
// on ouvre la
session que l'on a prcdemment cre. if (!session_is_registered("password")){
// On vrifie que la session est bien cre. echo "Erreur
: vous devez vous identifier pour avoir accs cette espace !";
// Message d'erreur exit();
// On arrte l'excution du script
(donc tout ce qui est en dessous ne sera pas affich) }
// FIN du if (!session_is_registered("password")){
// On vrifie que la session est bien cre.
// DEBUT
: contenu de votre espace membre : ----------------------------------------------------------- echo
"Bienvenue <b>$login</b> sur notre
espace membre."; //
Message de bienvenue ?> Contenu
de la page d'accueil ICI. <?php echo 'Je
souhaite <a href="logout.php">me
dconnecter</a>';
// Lien permettant la dconnexion. //
FIN : contenu de votre espace membre : ---------------------------------------------------------------- ?>
|
Voici le code PHP de la page de dconnexion (logout.php) :
|
<?php session_start();
// on dmarre la
session session_unset(); //
On efface toutes les variables de la session session_destroy();
// On dtruit ensuite la session.
header("location: index.php")
; // On redirige automatique cette page (que l'on
ne verra pas) vers la page d'identification. ?>
|
|