Sessions:Configuration Paramétrage PHP

Un article de WikiTuto.

Jump to: navigation, search

Sommaire

Explication

Bien que cela ne soit pas obligatoire, il est recommandé d'utiliser l'extension .php pour les scripts PHP en version 4. Avec PHP3, on employait habituellement l'extension .php3.

Le principe est que chaque visiteur du site reçoit au début de sa visite un identifiant unique. Cet identifiant est ensuite transmis de page en page, afin de permettre de suivre le déroulement de ses actions. Cela permet de savoir que le visiteur A a commandé les articles A1, A2 et A3, alors que le visiteur B a commandé B2 et B3. Cet identifiant unique peut être stocké dans un cookie, soit propagé par les URL longues.

L'utilisation des sessions de PHP4 peut se faire avec ou sans cookies côté client. Afin de se prémunir contre les navigateurs qui refusent les cookies, on peut également transmettre l'identifiant de session dans les URL longues des différentes pages du site. Ainsi, entre deux pages consécutives, le lien se fera sur http://monserveur.mondomaine.fr/application/... .../mapage.php3?PHPSESSID=CA3F1261FB81395BB4A Une session permet de gérer un contexte. Le contexte est l'ensemble de plusieurs variables dont le contenu persiste sur plusieurs pages de l'application (Voir l'exemple des sites commerciaux, avec alimentation de 'Paniers' ou de 'Caddies'). Actuellement, les contextes peuvent contenir des variables scalaires (chaînes, entiers, flottants, etc...) mais aussi des tableaux (Array). En revanche, les contexte ne peuvent pas contenir d'objets PHP (un objet PHP est une instance d'une classe PHP).

Paramètres

Le fichier de configuration php.ini comporte désormais une section dédiée à la configuration de la gestion de sessions. On y trouve en particulier les paramètres suivants :

  • session.save_handler : Actuellement, la seule valeur possible est 'file', ce qui signifie que les valeurs des variables de session (ce que l'on appelle également le contexte) est stocké dans un fichier sur disque. Le contenu de ces fichiers est en ASCII, on peut y reconnaitre le nom des variables, ainsi que leurs types et valeurs. Cela se complique un peu pour les variables de type tableau et pire encore pour les objets ;-) On peut imaginer que dans le futur, PHP4 offrira un stockage en mémoire, ou dans un SGBD.
  • session.save_path : Ce paramètre indique le chemin ou seront stockés les fichiers Ascii contenant le contexte, et décrits ci-dessus. Par défaut, ils sont créés dans /tmp. Personnellement, j'ai créé un sous-répertoire sous /tmp, et je place donc ces fichiers de session dans /tmp/php4sessions/
  • session.name : Spécifie le nom de la session, nom également utilisé en tant que nom du cookie. Il ne doit contenir que des caractères alpha numériques. La valeur par défauts est PHPSESSID.
  • session.lifetime : Ce paramètre indique la durée maximale de vie du cookie envoyé au navigateur client. Si le paramètrer est zéro, le cookie existera jusqu'à ce que le navigateur soit arrêté. C'est la valeur par défaut.
  • session.auto_start : Spécifie si les sessions sont créées à la demande , ou systématiquement. Par défaut, à zéro, les sessions doivent être créées explicitement par session_start() ou session_register().
  • session.serialize_handler: Détermine le nom du Handler utilisé pour serialiser/déserialiser les données. Actuellement, la seule valeur reconnue est "php". C'est donc également la valeur par défaut.
  • session.gc_probability : Fixe la probabilité (entre 1 et 100) qu'un processus de ramasse-mièttes se mette en route à chaque requête Http (Ramasse-mièttes = garbage collection). Vaut 1 par défaut, donc faible probabilité.
  • session.gc_maxlifetime : Indique au bout de combien de temps des données seront considérées comme périmées et nettoyées.

Voir aussi

Source

Boîte à outils
Annuaire gratuitCe site est listé dans la catégorie Informatique : Aide et astuces en informatique Annuaire