Page 1 sur 1

session_start() créé des variables?

Posté : 10 mars 2006, 12:24
par troudball
Salut à tous,
j'ai une petite confusion : Mais que fais exectement la fonction session_start(), c'est ce qui permet de créer les variables global du type$HTTP_SESSION_VARS?

A+

Posté : 10 mars 2006, 13:35
par Spols
Session_start () permet en fait à php de traiter les variables de session (créer, lire, modifier,...)

Re: session_start() créé des variables?

Posté : 10 mars 2006, 22:52
par tomypunk
Salut à tous,
j'ai une petite confusion : Mais que fais exectement la fonction session_start(), c'est ce qui permet de créer les variables global du type$HTTP_SESSION_VARS?

A+
on utilise plus $HTTP_SESSION_VARS maintenant ce qu'il faut utiliser c'est $_SESSION parce que $HTTP_SESSION_VARS a terme va disparaitre ...

Re: session_start() créé des variables?

Posté : 10 mars 2006, 23:38
par Ripat
Salut à tous,
j'ai une petite confusion : Mais que fais exectement la fonction session_start(), c'est ce qui permet de créer les variables global du type$HTTP_SESSION_VARS?

A+
Comment ça marche
Au premier appel à un script qui contient la fonction session_start(), celle-ci va déposer un cookie d'identification sur le poste client et ouvrir un fichier de session sur le serveur. Ce fichier est unique et n'appartient qu'au client qui possède le code d'identification contenu dans le cookie.

Aux appels subséquents, si un cookie de session existe déjà sur le poste client, PHP ouvre le fichier de session de ce client et lit (affecte) les différentes variables et tableaux qui s'y trouvent.

Voilà, en gros, ce que fait cette fonction. Il fait encore d'autres choses utiles comme le nettoyage des fichiers de sessions obsolètes, la gestion de la destruction des variables/tableaux de session etc...

Tout ce que fait cette fonction peut être totalement répliqué par un code perso qui manipule les cookies (setcookie) la sérialisation (serialize unserialize) la gestion des fichiers (fopen fwrite fread etc...) ou bien le stockage en bdd mais bon, c'est quand même beaucoup plus rapide et simple d'utiliser session_start qui tient en une seule ligne non?

A quoi ça sert
A passer des variables/tableaux d'une page à l'autre. Très pratique pour personnaliser un site en fonction d'un utilisateur particulier, qui se serait indentifié à son entrée sur un site.

Outil indispensable.

Il y a plein de tuto sur le sujet.
La doc: http://php.belnet.be/manual/fr/ref.session.php

Posté : 14 mars 2006, 10:38
par troudball
Salut Ripat, en voilà une belle explication! Tout est clair miantenant, c'est vrai que c'est vraiment pratique!!

Juste une dernière chose, au delà d'économiser une ligne de code dans chaque script, convient-il ou ne convient-il pas d'activier la session_start() automatique dans le php.ini?

Posté : 15 mars 2006, 09:05
par Ripat
Je ne vois pas de contre-indications à activer automatiquement les sessions de cette manière (sauf, peut-être pour le stockage d'objets).

Personnellement je préfère rester maître des sessions et les activer moi-même quand elles sont nécessaires. Surtout qu'il ne s'agit que d'une seule ligne de code!