PHP les Sessions

PHP cours tutorial

PHP utilisation des sessions



Une variable de session de PHP est employée pour stocker des informations dans un tableau ( array) pour une session d'utilisateur. Les variables de session tiennent des informations sur un utilisateur simple, et sont disponibles dans toutes les pages dans une application.

Variables de session de PHP



Quand vous travaillez avec une application, vous l'ouvrez, faites quelques changements et alors vous la clôturez. C'est une session.
L'ordinateur sait qui vous êtes. Il sait quand vous commencez l'application et quand vous finissez.
Mais sur Internet il y a un problème : le serveur web ne sait pas qui vous êtes et ce que vous faites parce que l'adresse HTTP ne le soutient pas.
Une session de PHP résout ce problème en te permettant de stocker l'information d'utilisateur sur le serveur.
Cependant, l'information de session est provisoire et sera supprimée après que l'utilisateur ait quitté le site Web. Si vous avez besoin d'une mémoire permanente vous pouvez stocker les données dans une base de données.
Les sessions fonctionnent par la création d’un identifiant unique (UID) pour chaque visiteur et stockent des variables basées sur cet UID. L'UID est stocké dans une cookie.

Démarrer une session PHP



Avant que vous puissiez stocker l'information d'utilisateur dans votre session PHP, vous devez d'abord démarrer la session par la fonction session_start().
Note : La fonction session_start() doit apparaître AVANT la balise <html> tout en haut de votre document comme ceci :
Sélectionner le code


<?php session_start() ; ? >

<html>
<body>

</body>
</html> 

 

Le code ci-dessus enregistrera la session d'utilisateur sur le serveur, permettra de commencer l’utilisation de l'information d'utilisateur , et assignera un UID pour cette session d'utilisateur.
Sans ce cette fonction vous ne pouvez pas utiliser la session.

Stockage d'une variable de session


La manière correcte de stocker et rechercher des variables de session est d'employer la variable de PHP $_SESSION

Exemple :

Supposons que nous voudrions voir combien de pages le visiteur a vue pendant sa visite sur notre site.
On va créer une variable $Pagevu qu’on vas passer dans une variable $_SESSION['Pvu'].
Et bien sure la variable $_SESSION['Pvu'] sera disponible dans toutes les pages dés qu’elle est créée comme toutes les variables de session dalleur .

Sélectionner le code


<?php
session_start();
 //on vérifie si la svariable $_SESSION['Pvu'] existe
if(isset($_SESSION['Pvu']) AND $_SESSION['Pvu']>=1){
//on récupère la valeur
$Pvu=$_SESSION['Pvu'];
//on incrémente
$Pvu++ ;
// on repasse la valeur dans la $_SESSION['Pvu']
$_SESSION['Pvu']=$Pvu ;
}else{
//si non on créer la $Pvu et la place dans la $_SESSION['Pvu']
$Pvu=1 ;
//et on stocke la variable dans une variable session
$_SESSION['Pvu']=$Pvu ;
}
?>

<html>
<body>

<?php
//Afficher la variable ou faire tout ce qu’on veut avec
echo "Pages vues = ". $_SESSION['Pvu'];
?>

</body>
</html>

 

Destruction d'une session



Si vous souhaitez supprimer quelques données de session, vous pouvez employer la fonction unset () ou la fonction session_destroy().
La fonction unset () est employée pour supprimer une variable spécifique de session :

Sélectionner le code


<?php
unset($_SESSION['Pvu']);
?>
Vous pouvez également complètement détruire la session en appelant  la fonction session_destroy()  ce qui supprimera toute la session:
<?PHP
session_destroy ();
?> 

 

Note : session_destroy () remettra à zéro votre session et vous perdrez toutes vos données de session stockées.
Pour passer n’importe quelle donnée d’une page aux autres page du site on peut utiliser les sessions de PHP.
on peut créer une infinité de variables de session. Par exemple : $_SESSION['login'] contient le login du visiteur, $_SESSION['password'] contient le mot de passe etc...
L'avantage, c'est que le serveur conserve ces variables même lorsque la page PHP a fini d'être générée.
Ce qui veut dire que, quelle que soit la page de votre site, vous pourrez récupérer par exemple le login et le mot de passe du visiteur !
Mais il faut appeler session_start() sur chacune de vos pages AVANT d'écrire le moindre code HTML.
Si vous oubliez session_start(), vous ne pourrez pas accéder aux variables superglobales $_SESSION.



Par carabde 20 Aout 2014