| |
Savez-vous bien utiliser les outils de mesure d'audience ? Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ? Savez-vous utiliser les bons outils pour booster votre taux de transformation ? La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions ! ===> Informations et inscriptions.
|
Voir le sujet précédent :: Voir le sujet suivant
|
| Auteur |
Message |
| |
|
zeb WRInaute passionné

Inscrit le: 05 Déc 2004 Messages: 925
|
Posté le : Jeu Juin 12, 2008 10:22 Sujet du message: Session Globals et classes |
|
|
Bonjour,
Je rencontre un problème pour lequel je ne trouve pas de solution.
Dans une méthode de classe (php5) j'ai besoins de consulter une variable de session, mais rien n'y fait.
Cette variable de session contient un booléen et la condition suivante dans ma methode ne foncttionne pas :
| Code: |
| if($_SESSION['mavariable']){ $GLOBALS['uneautrevariable']=trucmachin; } |
J'ai résolu le problème car je fais une opération sur une variable (qui n'existe que si c'est nécessaire) de la page qui utilise cet objet en testant l'existence de la variable a traiter ($uneautrevariable) comme ceci :
| Code: |
| if(isset($GLOBALS['uneautrevariable'])){ $GLOBALS['uneautrevariable']=trucmachin; } |
Mais j'aimerais comprendre le pourquoi du comment.
Merci |
|
| |
|
 |
Bacteries WRInaute accro

Inscrit le: 27 Mai 2004 Messages: 1048 Localisation: France - Nantes
|
Posté le : Jeu Juin 12, 2008 10:46 Sujet du message: Session Globals et classes |
|
|
T'as démarrer ta session?
Que te dit un print_r($_SESSION); ? |
|
| |
|
 |
zeb WRInaute passionné

Inscrit le: 05 Déc 2004 Messages: 925
|
Posté le : Jeu Juin 12, 2008 13:48 Sujet du message: Session Globals et classes |
|
|
| Bacteries a écrit: |
T'as démarrer ta session?
Que te dit un print_r($_SESSION); ? |
oui oui t'inquiet pas la session est active et tout et tout, ça fait même un moment que cet aspect est maîtrise, puisque pour te donner un peut de détail, en fait la variable de session en question, s'appel 'debug' et vaux vrai ou faux .
Cette variable me sert a basculer ma session en mode 'debug' où justement, je produit un affichage particulier de toutes mes variables (entre autre) en voici le dump pour exemple :
| Citation: |
16 Variables
$_SESSION['droits'] = webmaster
$_SESSION['id'] = 1
$_SESSION['nom'] = xxxxxxxx
$_SESSION['prenom'] = xxxxxxxxx
$_SESSION['alias'] = xxxxxxxxx
$_SESSION['mail'] = webmaster@xxxxxxxxx.com
$_SESSION['mdp'] = xxxxxxxxx
$_SESSION['lastip'] = 81.xxx.xxx.xxx
$_SESSION['info'] = ...
$_SESSION['url_avatar'] =
$_SESSION['site'] =
$_SESSION['libsite'] =
$_SESSION['inscription'] = 0000-00-00
$_SESSION['last_connexion'] = 2008-06-12 06:54:54
$_SESSION['log'] = 1
$_SESSION['debug'] = 1 |
Le truc c'est que quand j'exécute la condition au dessus dans ma méthode, que $_SESSION['debug'] soit true ou false, ça ne change rien.
Toujours pour la curiosité, cette condition, conditionne (hummmm elle est bonne celle là) à l'intérieur de ma méthode de classe l'enregistrement d'une requête dans une array :
| Code: |
if(isset($GLOBALS['tab_req_obj'])){
array_push($GLOBALS['tab_req_obj'],"class-edito : $in");
} |
Comme le mode 'debug' de la session est initialisé par le passage à true de cette variable, je crée l'array 'tab_req_obj' en amont de l'usage de l'objet (en fait juste après le session_start) donc la pirouette ci dessus fonctionne (test avec isset) mais je ne comprend pas pourquoi je n'arrive pas a faire la même chose sous cette forme :
| Code: |
if($_SESSION['debug']){
array_push($GLOBALS['tab_req_obj'],"class-edito : $in");
} |
les mystères de php .... et de ma tête creuse car il y a sûrement une réponse évidente ... |
|
| |
|
 |
erestrebian WRInaute impliqué

Inscrit le: 15 Juin 2007 Messages: 366 Localisation: Lettonie
|
Posté le : Jeu Juin 12, 2008 14:24 Sujet du message: Session Globals et classes |
|
|
if($_SESSION['debug']==1){
array_push($GLOBALS['tab_req_obj'],"class-edito : $in");
}
est-ce que ça fonctionne ça? J'avais eu des soucis une fois avec les booléens et depuis j'utilise plus trop donc je passe par des chemins parallèles... |
|
| |
|
 |
zeb WRInaute passionné

Inscrit le: 05 Déc 2004 Messages: 925
|
Posté le : Jeu Juin 12, 2008 20:42 Sujet du message: Session Globals et classes |
|
|
| erestrebian a écrit: |
if($_SESSION['debug']==1){
array_push($GLOBALS['tab_req_obj'],"class-edito-bis : $in");
}
est-ce que ça fonctionne ça? J'avais eu des soucis une fois avec les booléens et depuis j'utilise plus trop donc je passe par des chemins parallèles... |
| Citation: |
SQL-Query-Objet['6'] = class-edito : SELECT * FROM `editeur` WHERE id=5704
SQL-Query-Objet['7'] = class-edito-bis : SELECT * FROM `editeur` WHERE id=5704
SQL-Query-Objet['8'] = class-edito : UPDATE editeur SET hit = hit+1 WHERE id=5704
SQL-Query-Objet['9'] = class-edito-bis : UPDATE editeur SET hit = hit+1 WHERE id=5704 |
j'ai ajouté ton code en plus du mien, il provoque un béguéement ce qui m'indique que tu as raison !
Il faux donc (a priori dans les méthodes) tester explicitement l'égalité a true.
PHP5 / erestrebian -> erestrebian vainqueur par KO Merci  |
|
| |
|
 |
| |
|
|
|
|
Autres sujets de discussion :
|
|