Persistance des données

Deux mécanismes pour permettre au serveur de stocker des informations
sur un visiteur, pour les retrouver plus tard (soit lors d’une visite
ultérieure, soit lors du chargement d’une autre page du site).

Avec les sessions, les informations sont stockées sur le serveur.
Avec les cookies, elles sont stockées sur le client.

Sessions

Fonction session_start ()

Si c’est la première visite, une session est créée. Sinon, les
informations de session sont rechargées.

Les informations sont stockées sur le serveur
(donc ne sont pas falsifiables).
Pour faire le lien entre la session et l’utilisateur, la fonction crée
un cookie PHPSESSID (voir ci-dessous pour les cookies) sur la machine
du client. Ce cookie ne contient aucune des informations fournies par
l’utilisateur au serveur.

La fonction session_startdoit être appelée avant tout affichage (donc même
pas un espace avant la balise php).

Exemple :

<?php
...
/* Pas d'echo avant cette ligne !!!! */
session_start ();

if (!isset($_SESSION['connu']))
{
   $_SESSION['connu'] = true;
   echo "Ceci est votre premiere visite";
}
else echo "On s'est deja vus quelque part ?";
?>

Possibilité de définir où les infos de sessions sont stockées :

session_save_path(chemin);

Cookies

Les cookies sont des éléments d’information stockés sur la machine du
client par le navigateur, que le serveur retrouvera lors d’une visite ultérieure.

setcookie('clef', 'valeur')
setcookie('clef', 'valeur', time() + nb_secondes)

Cette fonction doit être appelée avant tout affichage.

Pour l’utiliser ensuite :

isset($_COOKIE['clef'])

Exemple :

<?php
...
/* Pas d'echo avant cette ligne !!!! */
if (!isset($_COOKIE['mon-cookie']))
   setcookie('mon-cookie', 'ma-valeur');
   else
   { ... }
?>

A noter :

  • le cookie est placé par le navigateur, donc si vous lancez un autre
    navigateur, le cookie ne sera pas être utilisé
  • un cookie est falsifiable par le client : on peut modifier la valeur
    qui est stockée (certaines extensions firefox ou chrome le permettent, par exemple)
Cette entrée a été publiée dans Cours, Non classé, avec comme mot(s)-clef(s) , , , , , . Vous pouvez la mettre en favoris avec ce permalien.

2 réponses à Persistance des données

  1. Baptiste F dit :

    Avec l’arrivée d’HTML5, une troisième méthode de stockage d’informations est disponible: le localStorage.
    Plus d’informations.

  2. Baptiste F dit :

    À propos des sessions (désolé du doublon), elles ne sont pas sécurisées à 100%. Les informations sont certes stockées sur le serveur, mais pour associer chaque session à chaque visiteur, un cookie contenant une ID unique de session est créé chez le client, et là est le problème, puisqu’il « suffit » de falsifier son cookie en prenant l’ID de session de quelqu’un d’autre (encore faut-il le trouver, mais ce n’est pas impossible) pour avoir son identité aux yeux du serveur. La seule solution reste le chiffrement de connexion.

    Plus d’infos ici.

Répondre à Baptiste F Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Merci de répondre à cette question pour prouver que vous n'êtes pas un robot :

Combien font 8 fois 8 ?