Accueil > Manip’s > PHP > Leçons PHP > PHP : Gestion facile des Sessions en PHP
PHP, Session
PHP : Gestion facile des Sessions en PHP
dimanche 24 septembre 2006, par
La gestion des sessions
- est un concept simple et puissant et assez mal expliqué sur le WEB
La page d’accueil génère un Identificateur de Session UNIQUE et aléatoire qui est donc différent à chaque connexion,
- (On appelle session le temps passé entre l’ouverture et la fermeture du navigateur)
La génération de d’identificateur et de la session se fait par la commande
- session_start()
- Celle ci doit être placée tout en haut de la page, à la 1ere ligne, avant toute balise HTML
Un numéro d’identification unique peut être récupéré par la commande
- session_id()
- De cette façon
- $sid = session_id() ;
- Il prend habituellement cette forme
- "667a4b925f2f01610ff1e4643e5e218a"
- (exemple de numéro de session aléatoire)
- De cette façon
Le principe est de
- propager cette identificateur de session (SID)
- récupéré sur la première page
- à travers chaque nouvelle page visitée
- par son URL
- et de le comparer à l’identificateur de session interne
- automatiquement généré par chaque page qui s’ouvre au cours de la même session
- Normalement les 2 doivent être identiques,
- puisque par définition la session est unique
- Et que tous les numéros de session générés par toutes les pages visitées entre l’ouverture et la fermeture du navigateur sont rigoureusement identiques
Pour permettre à n’importe quelle page visitée pendant une session de fournir son numéro unique l’instruction est
- session_start()
- Ce n’est donc pas trop compliqué, c’est la même que celle qui crée la session !!!
Et logiquement pour lire le numéro de session d’une page visitée, devinez la commande ?
- session_id() Bingo !
EXEMPLE PRATIQUE
- Page1 appelle Page2
- Je veux que mon visiteur ne puisse pas ouvrir la page2 s’il ne s’est pas identifié en page1
- En clair
- Seule la page1 est autorisée à ouvrir la page2
PAGE1.PHP
< ?PHP
session_start() ;
$id=session_id() ;
J’appelle la page 2 en propageant l’Identificateur par l’URL
<A HREF="PAGE2.PHP ?id=$id">Ouvrir la Page 2</A>
?>
PAGE2.PHP
< ?PHP
session_start() ;
$id_interne=session_id() ;
Je récupère l’identificateur passé dans l’URL
$id_url = $_GET [’id’] ;
Je compare
if ($id_interne == $id_url)
- Si les 2 Numéros sont les mêmes,
- Cela veut dire que les 2 pages font partie de la même session,
- Et que si le visiteur a pu ouvrir la première porte, alors on lui autorisera automatiquement toutes les suivantes.
?>
Ce n’était pas très compliqué :’-))
Messages
1. PHP : Gestion facile des Sessions en PHP, 24 septembre 2006, 20:45, par BlueGYN
A NOTER POUR LES UTILISATEURS DE FREE
Qu’il convent de créer à la racine du site un dossier
Attention a mettre une ’S’
Qui mémorise tous les paramètres de session