problèmes de sessions et de variables [- soucis Mis à Jour -] - PHP - Programmation
Marsh Posté le 02-09-2008 à 11:56:10
déjà :
$_SESSION reste le meme d'un chargement a l'autre
$_GLOBALS est réinitialisé a chaque nouvelle page
et pourquoi pas un simple $_SESSION['maVilleAMoiQueJai'] = $id ;
Marsh Posté le 02-09-2008 à 12:04:29
Quand j'arrive sur la première page : index.php, je fais un test sur l'existance de $_SESSION['maVilleAMoiQueJai']. Si elle n'existe pas, alors je la créee et j'affect $GLOBALS["id"].
Mais si je reviens sur le même site avec une autre ville, $_SESSION['maVilleAMoiQueJai'] éxiste alors il ne la change pas... Je me retrouve donc avec les informations de l'autre ville en lieu et place de la nouvelle ville passé en argument
Marsh Posté le 02-09-2008 à 12:06:21
alros il faut que tu fasse un tests sur l'existence ET sur le fait que la ville en parametre soit la meme que celle dans la session
( maisje vois aps a quoi sert ton $_globals['id'] ) ?
Marsh Posté le 02-09-2008 à 12:12:33
j'ai ça :
Code :
|
ça fonctionne sauf deux choses :
1. Je dois faire un reload de ma page pour que les paramètres passent
2. Si je change quoi que ce soit, genre le code qui suite, ça fonctionne plus
Code :
|
Marsh Posté le 02-09-2008 à 12:45:34
xkamui a écrit : j'ai ça :
|
1-Échappe tes données dépendantes du client avant de les placer dans tes requêtes avec mysql_real_escape_string
2-Pas besoin de rendre ta variable de session globale elle l'est déjà...
Utilise directement $_SESSION
Ce qui donne :
Code :
|
Marsh Posté le 02-09-2008 à 16:11:31
Merci Luc@s, mais celà ne corrige pas ce que je dois faire.
Comme je l'ai dit plus haut, je me dois d'utiliser $GLOBALS["id"].
De plus, si je change de ville, le problème reste le même, il me garde la session en cours, avec l'id de la ville précédente.
Marsh Posté le 02-09-2008 à 16:13:18
t'as qu'a adapter le code qu'il t'a donné. A priori, il te reste 2 choses à ajouter: le test d'égalité entre $_SESSION et $ida[0] d'une part, et l'affectation de GLOBALS['id']...
Marsh Posté le 02-09-2008 à 16:19:46
bah, oui, c'est bien ce que j'ai fait, mais, comme plus haut, dès que je change un truc, ça fonctionne même plus pour la première ville.
J'ai bien ajouté un 'ou session != id en cours' ainsi qu'une affectation de la Globale id, mais rien de nouveau...
vraiment, je patauge...
Marsh Posté le 05-09-2008 à 18:48:29
$GLOBALS est inutile si tu passes par des SESSION car $_SESSION est accessible partout (comme $GLOBALS).
Alors pourquoi as tu besoin de $GLOBALS ???
Marsh Posté le 05-09-2008 à 19:56:18
prennons le problème dans l'autre sens, alors.
Disons que j'ai $GLOBALS et que je veux que cette globale change dès que on change de ville.
Marsh Posté le 05-09-2008 à 20:11:59
ok, je crois que je commence à discerner la différence entre $_SESSIONS et $_GLOBALS.
En application à mon soucis :
Lorsque je suis sur la page index, j'y accède avec une variable $ville. De là, je récupère l'id correspondant en BDD, le stock dans $_GLOBALS["id"] et je m'en sers dans un fichier Flash.
Ce fichier Flash vient, automatiquement, faire un getLocation vers la page accueil.php, cependant, il n'envoi pas la variable $ville, donc, dans la page accueil, je peux pas récupérer l'id, et les données ne sont pas à jour.
J'avais donc pensé, pour ça les mettre dans une variable de session.
Maintenant, jai aussi essayé de mettre ça comme ça :
Code :
|
Mais ça ne fonctionne pas mieux, voir pas du tout...
Marsh Posté le 05-09-2008 à 20:26:50
deja , pourquoi tu las mets dans $_SESSION['id_agence_' . $ida[0] . ''
pourquoi ne pas mettre tout simplement qq chose comme ca
$_SESSION['idVille'] = $idVille;
$_SESSION['idAgence'] =$idAgence
et ainsi de suite ?
Marsh Posté le 16-09-2008 à 11:44:27
Re-Bonjour
Petite mise à jour de mon soucis :
J'ai maintenant une frame, appellé sur mon site parent, genre : http://www.parent.com qui contient le code suivant :
Code :
|
Maintenant, dans la page PHP, je fait un appel de session dans index.php, puis je redirige vers index2.php qui lui, va afficher les données correspondantes aux valeurs dans la variable de session.
Cependant, sous IE ça fonctionne que si on fait un F5, et pas toujours du premier coup.
sous Firefox pas de soucis, mais mon client utilise IE, donc faut que j'arrive à le faire fonctionner dessus.
Quelqu'un pourrait m'aider, je déséspère...
Marsh Posté le 16-09-2008 à 11:48:15
tu comprends maintenant pourquoi les frames sont abandonnées ?
Marsh Posté le 16-09-2008 à 11:50:46
sans doute, mais c'est une contraint technique à laquelle je ne peux couper...
Marsh Posté le 02-09-2008 à 11:47:28
Bonjour,
voici ce qui se passe :
J'ai un site avec une adresse du type : http://www.monsite.com/index.php?ville=ma_ville
je récupère alors la var ville et je fais une recherche dans ma base de données, pour récupérer un ID.
Je dois ensuite l'enregistrer dans une session pour la passer à $GLOBALS["id"] (note : $GLOBALS["id"] est non négociable, je suis obligé de me servir de ça.)
D'une part, celà ne fonctionne pas tout de suite, je dois faire une F5 pour que ma session soit effectivement remplie avec mon id_ville.
D'autre part, lorsque je lance le même site avec une autre ville, j'ai le même id. Je le conçoit aisement car je ne renseigne que $_SESSION['id_ville'] = 'n';
J'ai donc essayé de déclarer comme suit : $_SESSION['id_ville_' . $idv[0] . ''] = $idv[0]; mais là, ça fonctionne carémment pas.
Si quelqu'un peut maider donc, sur ces sessions, je suis preneur.
Merci
Message édité par xkamui le 12-09-2008 à 15:42:07