session_start() créé des variables?

Eléphant du PHP | 101 Messages

10 mars 2006, 12:24

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+
nan!

Mammouth du PHP | 1967 Messages

10 mars 2006, 13:35

Session_start () permet en fait à php de traiter les variables de session (créer, lire, modifier,...)
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 101 Messages

10 mars 2006, 22:52

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 ...

ViPHP
ViPHP | 1380 Messages

10 mars 2006, 23:38

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
ripat

Eléphant du PHP | 101 Messages

14 mars 2006, 10:38

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?
nan!

ViPHP
ViPHP | 1380 Messages

15 mars 2006, 09:05

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!
ripat