PHP 4.3.0 et les sessions

PHP 4.3.0 et les sessions - PHP - Programmation

Marsh Posté le 30-01-2003 à 23:00:33    

Bonjour,
 
Voila, je viens d'essayer de faire des sessions avec PHP 4.3.0 (1er fois avec cette version, je n'ai jamais eu aucun prob avec les anciennes versions).
 
J'essaie d'utiliser le petit code qui suit:

Code :
  1. <?php
  2. session_start();
  3. if(session_is_registered("h_con" ))
  4. {
  5. $h_con = microtime();
  6. session_register("h_con" );
  7. }
  8. else
  9. {
  10. $diff = microtime() - $_SESSION["h_con"];
  11. echo $diff;
  12. }
  13. ?>


 
Mais ca me retourne l'erreur suivant:

Code :
  1. Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0


 
Quelqu'un aurait-il une idée d'où peut venir ce problème? Et comment le résoudre?
 
Merci  :jap:

Reply

Marsh Posté le 30-01-2003 à 23:00:33   

Reply

Marsh Posté le 30-01-2003 à 23:18:01    

Bin ça me semble assez explicite. J'ai pas essayé PHP 4.3 m'enfin d'après le message, c'est tout bête. Il te dit que les variables de sessions ne sont pas enregistrées en tant que variables globales. Donc t'as 2 possibilités :
* tu fous register_globals à on dans ton php.ini ;
* tu écris $_SESSION["h_con"] partout.
Seulement, y a p'têt un défaut dans ton code. Tu fais if(session_is_registered("h_con" )) alors on register la variable. Perso, je verrais plus if(!session_is_registered("h_con" )) non ?
'fin c'est toi qui vois :)

Reply

Marsh Posté le 30-01-2003 à 23:23:50    

oui oui, j'ai corrigé, une petite erreur de frappe.
 
Tu dis "* tu écris $_SESSION["h_con"] partout.", je comprends pas vraiment car à part dans le code que j'ai mis, c'est le seul endroit où il y a du PHP (à part les includes sur les autres pages). Donc c'est le seul endroit où j'utilise cette variable, or c bien celle là que j'utilise.

Reply

Marsh Posté le 30-01-2003 à 23:27:58    

J'ai remarqué un truc, j'ai le message qu'au premier accès. Si je fais un refresh de la page, il n'y a plus le message d'erreur.
 
Donc j'en déduis que c'est parce que la variable $_SESSION["h_con"]. Or si j'utilise session_is_registred, c'est justement dans le but de savoir si elle existe ou pas! Soit le PHP devient con, soit je deviens fou.

Reply

Marsh Posté le 30-01-2003 à 23:29:01    

Alors essaie avec $HTTP_SESSION_VARS à la place de $_SESSION.

Reply

Marsh Posté le 31-01-2003 à 00:12:39    

zion a écrit :


y a tous les éléments, pourquoi ne pas lire le manuel tout simplement?  :heink:  


 
Passke j'ai eu la flemme de regarder :D

Reply

Marsh Posté le 31-01-2003 à 00:16:05    

ben j'ai regardé et je n'ai pas vu ça. Faudrait que je change de lunettes  :sweat:

Reply

Marsh Posté le 31-01-2003 à 09:26:46    

j'utilise la dernière version du manuel PHP en version CHM. Donc là, je pense être suffisament armé  :whistle:  :lol:

Reply

Marsh Posté le 31-01-2003 à 15:34:48    

si, mais bon fatalement il les regroupe et sont peut-être moins récente que sur le site.
 
C pour ça que je prend à chaque fois la dernière version.

Reply

Marsh Posté le 31-01-2003 à 15:51:26    

zion a écrit :


Et si on lisait le manuel?
 
blabla...
 
y a tous les éléments, pourquoi ne pas lire le manuel tout simplement?  :heink:  


 
j'allais le dire...
 
en fait, il ne faut plus utiliser session_* mais $_SESSION[]
 
session_is_registered va se resumer a isset($_SESSION[monmerdier])
 
pareil pour session_register $_SESSION[monmerdier] = $machin
 
avec ca, pas de soucis en php 4.3


Message édité par apolon34 le 31-01-2003 à 15:51:58
Reply

Sujets relatifs:

Leave a Replay

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