2009-09-09 8 views
2

Je commence une nouvelle session avec: session_start(); je définirait des variables de session comme ceci:.session_start ne fonctionne pas :(

$_SESSION['name']=$_POST['name']; 

et quelques autres des variables

en bas de page Je mets en-tête à la page différente.

header('location: index.php'); 
exit(); 

maintenant en nouvelle page (index.php) Je ne peux pas accéder à mes variables de session, comme $_SESSION['name']

Qu'est-ce qui ne va pas?

Merci.

Répondre

7

Appellez-vous session_start() dans vos autres pages où vous essayez d'accéder à vos variables écrites $_SESSION? Vous devez le faire aussi avant d'essayer de lire quoi que ce soit, par exemple .:

session_start(); 
$blah = $_SESSION['blah']; 
4

Ceci est un problème connu en PHP, HTTP, ou qui vous voulez blâmer. Fondamentalement, vous ne pouvez pas définir les cookies et rediriger en utilisant HTTP dans la même demande. Lorsque vous démarrez une session qui n'a pas encore été créée, vous envoyez un cookie.

Deux options:

  1. démarrer la session ailleurs, ou
  2. envoyer soit JavaScript qui force une redirection, ou d'utiliser une balise meta.

Exemple:

<?php /* set session cookies */ ?> 
<script>window.location.replace("index.php");</script> 
+1

vars session ne sont pas les cookies, mais l'identifiant de session est. Vous pouvez définir toutes les variables de session souhaitées, où vous le souhaitez, tant que vous avez déjà démarré la session dans un autre script. – davethegr8

+0

Oui, exactement, j'ai mis à jour ma réponse. – carl