Quel est la durée de vie d'une variable session

Quel est la durée de vie d'une variable session - PHP - Programmation

Marsh Posté le 03-09-2005 à 02:19:47    

j'ai une page avec mon formulaire et une page de calcul.
 
 
je fais : form.php ===submit ==> calcul.php === header('location') ==> form.php
 
je clique sur un bouton, ca submit et ca revient sur ma page  
 
 
j'ecris dans mes variables session dans calcul.php et je les affiche dans form.php
 
elle s'affiche bien mais je suis obligé de refaire les affectation dans cacul.php  
 
 
$_SESSION['toto'] s'affiche bien  
 
(1) form.php =====> calcul.php : $_SESSION['toto']='toto'  =====> (2) form.php : echo $_SESSION['toto']  
 
 
 
mais si je fais un resubmit  
 
===== >(3) calcul.php : $_SESSION['toto'] n'existe plus ====> (4) form.php
 
je perde ma variable session dans calcul.php et donc apres quand je reredirige vers form.php, je peux plus afficher.
 
 
Pourquoi suis je obliger a chaque fois de faire des affectations pour ne pas perdre mes sessions ?
 
pourtant :  
- je ne fais pas de destroy ou que ce soit .....
- à la fin de mon fichier dans (2) form.php, je vois bien que $_SESSION['toto'] avec print_r($_SESSION) mais je vois apres que dès le début de (3) calcul.php j'ai perdu la variable en mettant un print_r($_SESSION) juste apres le session_start();

Reply

Marsh Posté le 03-09-2005 à 02:19:47   

Reply

Marsh Posté le 03-09-2005 à 02:21:13    

ficher de conf :
 
 

Citation :

Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\PROGRA~1\EASYPH~1\\tmp\ C:\PROGRA~1\EASYPH~1\\tmp\
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid On On

Reply

Marsh Posté le 03-09-2005 à 10:30:21    

t'affecterais pas des valeurs vide par hasard?

Reply

Marsh Posté le 03-09-2005 à 12:38:52    

tu veux dire $_SESSION['toto']="";
 
non je ne pense pas. Si j'affecte des variables vide, je devrais au moins voire que $_SESSION['toto'] avec aucune valeur. Non ?  
 
 
sinon bien entendu, j'"unsete" pas la variable.

Reply

Marsh Posté le 03-09-2005 à 12:54:16    

$_SESSION['toto']=$_POST['mavaleur'];
 
avec $_POST['mavaleur']; qu'est vide, ca videra quand même la valeur. Sinon, il y a pas un truc où il faut déclarer la session dans toutes les pages qu'on utilise?
 
Un de ces jours il va faloir que je m'y mettes aux session en php pour moins répondre à taton.

Reply

Marsh Posté le 03-09-2005 à 13:37:01    

au contraire, justement si je fais pas mon affectation, je n'ai plus ma variable de session ...
 
en (1) bis dans calcul.php, je fais mon affectation apres en (2) dans form.php je fais juste un simple affichage. Pour bien verifier que je n'ai pas fait apres m'affichage dans form.php, une opération qui detruirait la variable session, je fais un print_r($_SESSION). La variable $_SESSION['toto'] est bien présente à la fin du fichier form.php
 
Je submit vers calcul.php et poufff, elle a disparut.
 
 
Pour remedier aux probleme, je retransmet la valeur que devrait prendre $_SESSION['toto'] à calcul.php (3) via le post de mon formulaire et je refais mon affectation $_SESSION['toto']=$_POST['toto']; dans calcul.php (3)
 
 
C'est un peu dommage car je perds un peu l'utilité de la session qui est je pense de pouvoir recuperer une valeur sur n'importe quel page sans la retransmettre.
 
 
omega2, le site que je suis en train de developper sera heberger chez 9online.net, je ne pourrais rien touché à la conf malheuresement : http://www.online.net/support/fr/doc/php4/phpinfo.html

Reply

Marsh Posté le 03-09-2005 à 14:05:02    

je pensais pas aux fichier de config, mais à une fonction à utiliser dans chaque page utilisant les session pour justement dire qu'on les utilise. Mais je sais plus s'il faut le faire quand on utilise le tableau $_SESSION ou pas.

Reply

Marsh Posté le 03-09-2005 à 14:08:50    

ahhh oki.
Et bien pour ma part, je fais juste un session_start();

Reply

Marsh Posté le 03-09-2005 à 14:16:00    

Voilà, c'était à ca que je pensais. :)
Essaye sans pour voir au cas où.

Reply

Marsh Posté le 03-09-2005 à 14:25:53    

du fait que dans la conf, c'est session.auto_start Off Off, je suis obligé de dire que je demarre ma session dans ma page.
Si je ne l'indique pas, j'ai une erreur.

Reply

Marsh Posté le 03-09-2005 à 14:25:53   

Reply

Marsh Posté le 03-09-2005 à 14:32:09    

Ca te dit pas de balancer ton code (réduit au minimum si possible) ? J'ai la flemme d'essayer de comprendre ton post initial. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Sujets relatifs:

Leave a Replay

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