2010-11-26 21 views
2

J'utilise PHP pour développer des applications web. J'ai utilisé la session pour transmettre des informations d'une page à une autre page. mais la session est réinitialisée quand il s'agit d'une autre page. Je pense que cela est dû à une mauvaise portée des sessions (portée de la page)! Ai-je raison? si c'est le problème, alors comment surmonter le problème? Aidez-moi, s'il vous plaît. Merci d'avance!comment changer la portée de la session en php?

+1

utilisent session_start() vous en haut de chaque page? Je ne pense pas que $ _SESSION ait vraiment une portée car elle est accessible partout une fois qu'une session est commencée. Lisez ceci, il devrait vous aider http://uk2.php.net/manual/fr/language.variables.superglobals.php – martynthewolf

+0

S'il vous plaît vérifiez si vous utilisez la même session sur les deux pages en comparant l'ID de la session (voir ['session_id'] (http://php.net/session_id)). – Gumbo

Répondre

4

Vous devez mettre session_start() au début de chaque page - cela va démarrer une nouvelle session, ou, dans votre cas reprendre une session stockée, ainsi que des variables est tout. Cela fonctionnera sauf si vous appelez session_destroy() avant de naviguer vers la nouvelle page.

Hope this helps,

James

+0

Ou utilisez un framework qui fera cela pour vous –

+0

@dimitris mistriotis - Une bonne idée, mais un framework complet juste pour 'session_id()'? En outre, il est assez facile d'utiliser simplement 'session_start()' - un grand framework serait trop puissant pour cette application spécifique, je pense. Ce serait très pratique si vous vouliez tout un tas de fonctionnalités, cependant. – Bojangles

+1

Vous avez raison ... Juste pour une chose n'est pas une raison suffisante –

1

session n'a pas de portée, peut-être que vous appelez session_destroy() quelque part dans votre code