Vous êtes sur la page 1sur 9

Cookies et Sessions

Cookies et Sessions

Les Cookies PHP

2
Qu'est-ce qu'un cookie?
 Un cookie est souvent utilisé pour identifier
un utilisateur.
 Un cookie est un petit fichier que le serveur
embarque sur l'ordinateur de l'utilisateur.

 Chaque fois qu’un même ordinateur demande une


même page avec un navigateur, il enverra le
cookie.

 Avec PHP, vous pouvez à la fois créer et


récupérer des valeurs de cookie.

Comment créer un cookie?


 La fonction setcookie () est utilisée pour
définir un cookie.

Remarque: La fonction setcookie () doit apparaître


avant la balise <HTML>.

setcookie(name, value, expire, path,


domain);

4
Cookie : Exemples

<?php
setcookie("user", "Alex Porter", time()+3600);
?>

<html>
.....

<?php
$expire=time()+60*60*24*30;
setcookie("user", "Alex Porter", $expire);
?>

<html>
.....

Comment récupérer une valeur de cookie?


 La variable PHP $ _COOKIE est utilisé pour
récupérer une valeur de cookie.
 Dans l'exemple ci-dessous, nous récupérons la
valeur du cookie nommé "user" et l'afficher :

<?php
// Print a cookie
echo $_COOKIE["user"];

// A way to view all cookies


print_r($_COOKIE);
?>

6
Cookie : exemple

<html>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br>";
else
echo "Welcome guest!<br>";
?>
</body>
</html>

Comment supprimer un cookie?


 Lors de la suppression d'un cookie, vous devez
veiller à ce que la date d'expiration est dans
le passé.

<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>

8
Les Sessions PHP

Sessions PHP
 Les sessions sont un moyen de sauvegarder et de modifier des
variables tout au cours de la visite d’un internaute sans qu’elles
ne soient visibles dans l’URL et quelque soient leurs types
(tableau, objet…).

 Les variables de session contiennent des informations sur un


utilisateur unique, et sont disponibles pour toutes les pages d'une
application.

 Cette méthode permet de sécuriser un site, d’espionner le visiteur,


de sauvegarder son panier (e-commerce), etc.

 Les informations de sessions sont conservées en local sur le


serveur tandis qu’un identifiant de session est posté sous la forme
d’un cookie chez le client (ou via l’URL si le client refuse les
cookies).

 Toutefois, les informations de session sont temporaires et seront


supprimées après que l'utilisateur a quitté le site.

10
Sessions PHP
 Quelques fonctions :
 session_start() : démarre une session (doit
apparaître avant la balise <HTML>)
 session_destroy() : détruit les données de session
et ferme la session
 session_register(‘’var’’) : enregistre la variable
$var dans la session en cours, attention, ne pas
mettre le signe $ (dollars) devant le nom de
variable
 session_unregister(‘’var’’) : détruit la variable
$var de la session en cours

11

Sessions - ouverture
 Une session doit obligatoirement démarrer
avant l’envoi de toute information chez le
client : donc pas d’affichage et pas d’envoi
de header.

 On peut par exemple avoir une variable globale


contenant le code HTML de la page et
l’afficher à la fin du script.

12
Stocker une variable de session
La bonne façon de stocker et de récupérer des
variables de session est d'utiliser la variable
PHP $_SESSION :

<?php
session_start();
// store session data
$_SESSION['views']=1;
?>
<html>
<body>
<?php
//retrieve session data
echo "Pageviews=". $_SESSION['views'];
?>
</body>
</html>

13

Destruction d'une session


 Pour supprimer des données de session, on peut
utiliser la fonction unset () ou
session_destroy().

 La fonction unset () est utilisée pour libérer la


variable de session spécifiée:

<?php
session_start();
if(isset($_SESSION['views']))
unset($_SESSION['views']);
?>

14
Destruction d'une session
 Pour supprimer des données de session, on peut
utiliser la fonction unset() ou
session_destroy().

 On peut également détruire complètement la session


en appelant la fonction session_destroy()

<?php
session_destroy();
?>

session_destroy () va réinitialiser la session et on


perd toutes les données de session stockées.

15

Sessions
 Sauvegarder des variables de type objet dans une session est la
méthode de sécurisation maximum des données : elles n’apparaîtront
pas dans l’URL et ne pourront pas être forcées par un passage
manuel d’arguments au script dans la barre d’adresse du navigateur.

 Les données de session étant sauvegardées sur le serveur, l’accès


aux pages n’est pas ralenti même si des données volumineuses sont
stockées.

 Une session est automatiquement fermée si aucune requête n’a été


envoyée au serveur par le client durant un certain temps (2 heures
par défaut dans les fichiers de configuration Apache).

 Une session est un moyen simple de suivre un internaute de page en


page (sans qu’il s‘en rende compte). On peut ainsi sauvegarder son
parcours, établir son profil et établir des statistiques précises
sur la fréquentation du site, la visibilité de certaines pages,
l’efficacité du système de navigation…

16
Exemple : Authentification et sessions
 Un formulaire demande l'identifiant et le mot de
passe
 Ces informations sont vérifiées :
 Si ce n'est pas bon
 On redirige vers une page d'erreur ou on retourne au
formulaire
 Si c'est bon
 on crée une session avec session_start() et on crée un
paramètre sur le tableau associatif $_SESSION.
Par exemple : $_SESSION['valid_user'] = 1;
 On redirige vers les pages de contenu
 Sur les autres pages :
 session_start()
 Vérification de la variable $_SESSION['valid_user']
 Pour la déconnexion : session_destroy()

17

Exemple : Authentification et sessions

18