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

  FORUM HardWare.fr
  Programmation
  PHP

  $GLOBALS et session

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

$GLOBALS et session

n°1508538
jokaritaff
Posté le 30-01-2007 à 11:06:27  profilanswer
 

bonjour
 
dans mon appli j'utilise le tableau $GLOBALS
et des session
 
Or bien qu'a aucun endroit dans mon code il n'y a de lien explicite entre $GLOBALS et les session
il faut que je supprimer la session en cours pour que les modifications apportées a mon tableau $GLOBALS
soit prises en compte
 
est ce normal ?

mood
Publicité
Posté le 30-01-2007 à 11:06:27  profilanswer
 

n°1508576
rufo
Pas me confondre avec Lycos!
Posté le 30-01-2007 à 12:11:03  profilanswer
 

$GLOBALS est une variable tableau réservée de PHP et je ne sais pas si elle est accessible en écriture ; perso, je l'ai toujours utilisée en lecture seule.
Pour manipuler tes session, t'utilises bien la variable globale $_SESSION?

n°1508604
jokaritaff
Posté le 30-01-2007 à 14:07:42  profilanswer
 

oui c'est un tableau réservé par PHP que j'utilise en écriture.
oui j'utilise bien les session avec le tableau lui aussi réservé $_SESSION
 
une idée ?

n°1508609
rufo
Pas me confondre avec Lycos!
Posté le 30-01-2007 à 14:27:51  profilanswer
 

dans ton php.ini, t'as bien mis register_globals à off?

n°1508610
chani_t
From Dune
Posté le 30-01-2007 à 14:31:38  profilanswer
 

Je vais peut être poser une question conne, mais pourquoi utiliser le tableau $globals, alors que tu as une session ?

n°1508611
soju
One shot !
Posté le 30-01-2007 à 14:32:18  profilanswer
 

montre nous ton code ça sera plus parlant
 
sinon vérifie register_globals, ça peut porter à confusion si activé (voir doc session)

n°1508616
chani_t
From Dune
Posté le 30-01-2007 à 14:37:36  profilanswer
 

une piste ? :
 
Si vous enregistrez une variable globale dans une fonction, vous devez vous assurer de la rendre globale , avec global ou le tableau  GLOBALS[] , ou bien utiliser un des tableaux de session $_SESSION ou $HTTP_SESSION_VARS.
 

n°1508621
omega2
Posté le 30-01-2007 à 14:46:31  profilanswer
 

Chani_t > Il ne faut pas tout mélanger.
$_GLOBALS est interne à une exécution de script donnée. D'ailleur, quand les scripts sont bien fait, je ne vois aucun cas où il soit utile de manipuler directement le tableau $_GLOBALS : il y a le mot clé "global " qui est fait pour ça.
$_SESSION sert à faire transiter des valeurs entre plusieurs pages sans être obligé de modifier toutes les adresses et sans rendre l'ordre des pages obliguatoire.
 
Comme tu vois les deux n'ont aucun rapport entre eux.
 
jokaritaff > Qu'est ce qui t'as poussé à manipuler directement le tableau $_GLOBALS ?

n°1508632
chani_t
From Dune
Posté le 30-01-2007 à 15:13:07  profilanswer
 

Ba c'est bien ce que je pensais... je ne vois pas l'utilité de la chose...
 
Soit tu déclare tes variable en global, auquel cas, en effet elles apparaissent dans ton tableau $GLOBALS.. mais encore une fois je ne vois pas l'utilité
 
Soit éventuellement tu force la modification de ta variable par les fonction grace au &. (style pointeur en C).
 
Note bien que ce que j'ai marqué dans mon dernier post provient de la doc PHP ;)

n°1508657
rufo
Pas me confondre avec Lycos!
Posté le 30-01-2007 à 15:48:57  profilanswer
 

omega2 a écrit :

Chani_t > Il ne faut pas tout mélanger.
$_GLOBALS est interne à une exécution de script donnée. D'ailleur, quand les scripts sont bien fait, je ne vois aucun cas où il soit utile de manipuler directement le tableau $_GLOBALS : il y a le mot clé "global " qui est fait pour ça.
$_SESSION sert à faire transiter des valeurs entre plusieurs pages sans être obligé de modifier toutes les adresses et sans rendre l'ordre des pages obliguatoire.
 
Comme tu vois les deux n'ont aucun rapport entre eux.
 
jokaritaff > Qu'est ce qui t'as poussé à manipuler directement le tableau $_GLOBALS ?


 
$GLOBALS, je m'en sers parfois quand j'utilise dans une fonction des variables de langue (cf appli multi-langue, où y'a une variable par traduction des chaîne de caractères de l'IHM). Ca évite d'utiliser global et de devoir énumérer toutes les variables qu'on utilise dans la fonction...
 
Et il me semble que $HTTP_SESSION_VARS est dépréciée...

mood
Publicité
Posté le 30-01-2007 à 15:48:57  profilanswer
 

n°1508660
chani_t
From Dune
Posté le 30-01-2007 à 15:53:08  profilanswer
 

rufo a écrit :

Et il me semble que $HTTP_SESSION_VARS est dépréciée...


 
En effet, mais ça reste fonctionnel. A partir de PHP 4 il me semble, il était préférable d'utiliser $_SESSION à la place.

n°1508663
omega2
Posté le 30-01-2007 à 15:55:43  profilanswer
 

Pour du multi langue, je trouve

Code :
  1. function trad($id_texte) {
  2. global $lang_fr;
  3. return $lang_fr[$id_texte];
  4. }


Plus propre que de trimbaler 200 variables dans les variables globales.
 
PS : Evidement, je n'utilise pas de code aussi simplifié dans la gestion des langue de mon site mais c'est pour montrer le principe.

n°1508686
rufo
Pas me confondre avec Lycos!
Posté le 30-01-2007 à 16:19:37  profilanswer
 

Perso, je suis pas trop chaud pour mettre toutes les variables de traduction d'une langue dans un seul tableau. A tord ou à raison, je trouve qu'un tableau va consommer plus de mémoire que plein de petites variables. En +, comme on a rarement besoin de toutes les traductions de toute l'appli d'un coup pour une page donnée, j'ai tendance à répartir dans plusieurs fichiers mes traduction d'une langue et je fais des includes de ceux dont j'ai vraiment besoin (en général, je fais un répertoire par langue et un fichier pour chaque module de l'appli). Mais bon, c'est pas là qu'on doit faire un débat sur la gestion multi-langues des applis php :)

n°1508690
jokaritaff
Posté le 30-01-2007 à 16:24:03  profilanswer
 

ok pour tout ca
seulement je tiens a respecter la version actuelle de l'application.
Que ca soit bien ou pas d'utiliser $GLOBALS ce n'est pas le sujet.

n°1508736
rufo
Pas me confondre avec Lycos!
Posté le 30-01-2007 à 17:05:17  profilanswer
 

certes, mais on attend toujours un bout de code à se mettre sous la dent, nous, pour pouvoir t'aider...


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

  $GLOBALS et session

 

Sujets relatifs
[PHP] Probleme de content type avec IE (mais aussi de session)Cannot send session cache limiter (erreur php help)
connexion session login m2pSession dans un iframe sur ie7
Objet et variables de sessionSession en PHP
Cannot instantiate non-existent class: sessionProb Session... Wamp : Que se passe t'il ?
IIS+Cannot send session cookieinserer une image avec une var de session ?
Plus de sujets relatifs à : $GLOBALS et session


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