Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1318 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Pb avec des variables globales entre 2 fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pb avec des variables globales entre 2 fichiers

n°491612
-ET-
Eternel newbie
Posté le 19-08-2003 à 19:35:36  profilanswer
 

Voilà.
J'ai 2 pb de variables globales entre 2 fichiers php d'un forum phpBB.
 
1er cas, j'ai une valeur X récupérée d'un tableau par $HTTP_POST_VARS['tab_X'] que je dois ensuite stocker pour toute la durée de connexion au forum.
Le passage par la BD est trop lourd, j'ai déjà mis en oeuvre l'utilisation d'un cookie de session mais ils peuvent être désactivés, donc j'ai besoin d'utiliser une autre méthode.
A priori, il ne reste que les variables de session mais c'est là que j'ai un pb. Le renseignement de la variable se passe comme ça...

Code :
  1. if ( isset($HTTP_POST_VARS['tab_X']) && !isset($HTTP_SESSION_VARS['ses_X']) )
  2. {
  3. session_start();
  4. $HTTP_SESSION_VARS['ses_X'] = $HTTP_POST_VARS['tab_X'];
  5. }


Pb :
- ensuite j'ai besoin de faire un test sur ces 2 valeurs dans un autres fichier php...

Code :
  1. session_start();
  2. if ( !isset($HTTP_SESSION_VARS['ses_X']) && !isset($HTTP_POST_VARS['pc_time_offset']) )
  3. {
  4. ...
  5. }


Mais si je ne mets pas "session_start();" avant le test, il est toujours positif comme si "$HTTP_SESSION_VARS['ses_X']" était toujours vide même lorsqu'il ne l'est pas :(
Question 1 : C'est normal ? Il faut un "session_start();" avant chaque lecture de la variable ?
 
- par ailleurs quand je test ma page avec le validateur W3C, j'ai des 80 erreurs qui tournent TOUTES autour de ça...

Code :
  1. Line 257, column 137: cannot generate system identifier for general entity "PHPSESSID"
  2.   ...sid=7a066538d628e686602929f735c7a25a&PHPSESSID=aaad86eae79ec469fa6e7c16729950
  3.                                           ^
  4. Line 257, column 137: general entity "PHPSESSID" not defined and no default entity (explain...).
  5.   ...sid=7a066538d628e686602929f735c7a25a&PHPSESSID=aaad86eae79ec469fa6e7c16729950
  6.                                           ^
  7. Line 257, column 146: reference to entity "PHPSESSID" for which no system identifier could be generated
  8.   ...538d628e686602929f735c7a25a&PHPSESSID=aaad86eae79ec469fa6e7c1672995071" class
  9.                                           ^
  10. Line 257, column 136: entity was defined here
  11.   ...?sid=7a066538d628e686602929f735c7a25a&PHPSESSID=aaad86eae79ec469fa6e7c1672995
  12.                                           ^


Alors que j'en ai 0 si je ne mets pas de ligne "session_start();" qui fait disparaître "&PHPSESSID=aaad86eae79ec469fa6e7c1672995071" dans l'url.
 
Question 2 : Donc, il semble que j'en ai besoin pour lire la variable, mais que si je la mette ça ne soit pas conforme :(
Où est l'erreur ?
 
 
2ème pb, j'ai besoin de rendre un flag visible par d'autres fichiers php le temps d'une boucle.
 
Exemple, un fichier toto.php qui doit exécuter cette boucle faisant appel à une fonction d'un autre fichier...

Code :
  1. $flag=2     // peut être égal à 1, 2, 3, etc.
  2. while ( ... )
  3. {
  4.    ...
  5.    fct_x();
  6.    ...
  7. }


Et la fct_x() dans cet autre fichier a aussi besoin de connaître la valeur de "$flag".
 
J'ai donc besoin de lui passer l'info le plus simplement possible SANS EN FAIRE UN PARAMETRE DE LA FONCTION !!! (ça c'est pas possible pour d'autres raisons)
Le recours à la base de donnée est là aussi exclu car c'est beaucoup trop lourd pour une utilisation aussi fugitive de cette variable (sa valeur n'a pas besoin d'être stockée sur le long terme).
 
Question 3 : Donc ici aussi, est-ce que les variables de sessions sont la bonne méthode car cette variable aura une durée de vie beaucoup plus courte qu'une session, ou est-ce qu'il y en a d'autres ?
 
Merci d'avance :)


Message édité par -ET- le 19-08-2003 à 19:43:26
mood
Publicité
Posté le 19-08-2003 à 19:35:36  profilanswer
 

n°491620
RiderCrazy
Posté le 19-08-2003 à 19:42:11  profilanswer
 

Pour le premier problème: session_start obligatoire à chaque début de page qui utlise des sessions.
Pour le & qui plante avec le w3c, il faut le remplacer par & (cf php.ini de ton serveur pour le cas du PHPSESSID qui se met tous seul)

n°491624
-ET-
Eternel newbie
Posté le 19-08-2003 à 19:44:35  profilanswer
 

RiderCrazy a écrit :

Pour le premier problème: session_start obligatoire à chaque début de page qui utlise des sessions.
Pour le & qui plante avec le w3c, il faut le remplacer par & (cf php.ini de ton serveur pour le cas du PHPSESSID qui se met tous seul)


Merci beaucoup de ces 2 premières infos :)  
 
Pb pour le &amp je suis hébergé chez Planet-work donc comment je remédie à ce pb ?


Message édité par -ET- le 19-08-2003 à 19:46:03
n°492030
-ET-
Eternel newbie
Posté le 20-08-2003 à 02:00:32  profilanswer
 

-ET- a écrit :


Pb pour le & je suis hébergé chez Planet-work donc comment je remédie à ce pb ?


C'est bon j'ai trouvé.
 
Il suffit de placer une ligne...

Code :
  1. ini_set('arg_separator.output', '&');


...avant chaque session_start() dans mes fichiers php puisque je n'ai pas accès à leur php.ini .
 
Ne reste donc plus que le dernier pb : comment transmettre la valeur de $flag à la fonction sans le passer en paramètre car en réalité cette fonction est une fonction standard phpBB utilisée de nombreuses autre fois par d'autre pages php et je ne veux pas changer aussi tous les appels à cette fct.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Pb avec des variables globales entre 2 fichiers

 

Sujets relatifs
[java] compiler plusieurs fichiers[MYSQL] petite question sur la syntaxe des types de variables
J'ai trouve mon hebergeur, mais variables globales ON, c'est grave?Mes fichiers XML/XSL ne s'éxécute pas sur mon serveur mutualisé
Uploader plusieurs fichiers en même tempsUpload de fichiers sur un serveur
[ PHP ] jusqu'à combien de variables dans un envoi ?[ORACLE] : comment exploiter les fichiers ".ARC" ???
Equivalent de $_SERVER["QUERY_STRING"] pour les variables en POST 
Plus de sujets relatifs à : Pb avec des variables globales entre 2 fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR