[Résolu] Aide sur passage variable de session frame à frame

Eléphanteau du PHP | 24 Messages

12 mars 2007, 23:38

Bonjour,
Voilà (déjà je suis une grosse bille en PHP j'apprends...)
J'ai une page contenant 2 frames, dans l'une est présente mon formulaire de connexion, qui initialise une session.
Je crois savoir que les variables de cette session ne seront alors présentes que dans la frame contenant le formulaire de connexion.
En fait je souhaiterai qu'en même temps que j'ai la session qui se cré dans la frame 1, il y ai un transfert de ces variables dans la frame 2.
J'utilise un mélange de javascript/PHP (je sais c'est pas le top) du style : echo '<script>parent.frames[1].location.reload();</script>';
mais je ne sais pas comment passer les variables de la frame '0' à la frame '1'...
Y'a du boulot quoi, si quelqu'un peut me donner un coup de patte...
Modifié en dernier par vincilian le 17 mars 2007, 02:27, modifié 1 fois.

ViPHP
ViPHP | 3607 Messages

13 mars 2007, 00:01

les variables sessions sont accessible sur toutes tes pages, donc sur toutes tes frames...
Les deux seules choses auxquelles il faut penser, c'est qu'il ne faut pas oublier de mettre session_start() en haut de chaque frames...
Et la deuxième, c'est qu'il va falloir recharger une partie/toute la deuxième frame... car sinon, le php n'aura as été rééxécuté, et donc les sessions non plus...
voilà!
plus d'infos sur demande :wink:

Eléphanteau du PHP | 24 Messages

13 mars 2007, 00:45

OK, j'ai en effet juste eu besoin de mettre un session_start() dans la frame 0 pour retrouver mes variables initialisées lors de la validation de mon formulaire dans la frame 1, via le reload en JS je recharge bien avec la session initialisée dans la frame 0.
Maintenant quand je me délogue, je kill la session du frame 1, comment je fais pour killer dans la frame 0 ?
Faut croire qu'en fait j'ai rien killé du tout...
dois-je mettre un session_destroy dans la frame 0 aussi ?

ViPHP
ViPHP | 3607 Messages

13 mars 2007, 00:48

je pense qu'un simple unset($_SESSION['mavriable']); suivi d'un reload dans l'autre frame devrait faire l'affaire non ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 mars 2007, 12:26

Juste pour que ca soit plus clair, les sessions sont gérées par le serveur. Les frames sont quant à elles gérées par le navigateur (donc côté client) et ne font rien de plus que de la mise en page. Ta session est donc totalement indépendante de tes frames :)

Quand tu la créer, c'est sur le serveur et toutes tes pages peuvent y avoir accès. Quand tu la vide ou la détruit, c'est également sur le serveur et plus aucune de tes pages n'y aura accès :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...