A propos des Sessions

A propos des Sessions - PHP - Programmation

Marsh Posté le 19-02-2004 à 15:08:43    

Désolé pour mes questions, mais je ne fais du php que depuis 3 jours, je n'ai aucune expérience en programmation web, et il me faut acquérir certains "concepts"...
Par défaut, le fichier 'php.ini' pose:
 
1)session.gc_maxlifetime=1440 ; after this number of seconds, stored data will be seen as 'garbage' and cleaned up by the gc process
session.cache_expire=180 ; document expires after n minutes
 
1>Quel est l'intéret de conserver un document pendant 3 heures si les données sont détruites au bout de 24 minutes :??:
 
2)session.cookie_lifetime=0 ; lifetime in seconds of cookie or if 0, until browser is restarted
 
2>le processus de session fonctionnerait comme les cookies, dans ce cas quel est l'intérêt des paramètres 1) puisque si l'utilisateur ferme son browser, il perd aussitôt les informations sur la session :??:
 
3)ce test:

Citation :

if($PHPSESSID) session_start($PHPSESSID);
else session_start();


est-il en relation avec la directive session.gc_maxlifetime, cache_expire ou cookie_lifetime (voire plusieurs) :??:
 
MERCI D'AVANCe


Message édité par lkolrn le 19-02-2004 à 15:19:03
Reply

Marsh Posté le 19-02-2004 à 15:08:43   

Reply

Marsh Posté le 19-02-2004 à 17:33:30    

Wow quelles questions en seulement 3 jours :D
 
Bon, le 2 d'abord :
Les sessions sont sauvées sous forme de fichier, avec un id unique (SID) propre à un navigateur x depuis une adresse ip y (en gros). Par définition, une session n'est donc valide que pendant le temps où le navigateur du client reste ouvert, le fameux SID étant transmis de page en page (et c'est là que je réponds à la question) soit directement dans l'url, soit par un cookie. Il ne faut donc pas confondre les paramètres du 1 (qui concerne les valeurs de session elles même) du cookie permettant d'identifier la session via SID.
 
Concernant le 1, c'est une erreur de compréhension, les données ne sont pas détruites au bout de 24 minutes, mais les données inutilisées pendant plus de 24 minutes sont évacuées de la mémoire (par exemple, tu surfes sur un site et tu laisses ton navigateur ouvert du matin au soir sur la même page, sans rafraichir, inutile de conserver les valeurs de session pendant tout ce temps :)). Cache_expire définit lui la durée de vie du "fichier cache" où se trouve les données de session.
 
Ah : 3. Test idiot, session_start va automatiquement réouvrir la session correspondant à l'identifiant s'il existe :)

Reply

Marsh Posté le 03-03-2004 à 14:01:39    

MERCI pour ces eclaircissements!!! :jap:  
 

Citation :

if($PHPSESSID) session_start($PHPSESSID);
else session_start();
 
> 3. Test idiot, session_start va automatiquement réouvrir la session correspondant à l'identifiant s'il existe


 
ce code de test provient de www.asp-php.net (je fais ma balance, mais mieux vaut prévenir que guérir comme on dit ;) )


Message édité par lkolrn le 03-03-2004 à 14:01:58
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed