2012-07-24 57 views
0

我在本地windows xp pc上运行xampp 1.7.3。 phpinfo()确认会话已启用。本地主机上使用xampp的PHP会话

在 '的login.php' 我不得不以下代码:

session_start(); 
$_SESSION['user'] = "user"; 
//var_dump($_SESSION); 
header("Location: index.php"); 

在 '的index.php' 我有这样的代码:

session_start(); 
var_dump($_SESSION); 

然而,没有被印刷时,我得到index.php,$ _SESSION信息似乎丢失了(因为它是在我取消注册login.php中的var_dump时打印的)。在php.ini中,我检查了session.save_path。在此路径中,我可以找到包含存储在login.php中的会话信息的会话文件。但是,为什么会话信息没有结转到index.php?这是由于某种原因,因为我在本地主机上运行?

+0

您是否启用了错误报告? – 2012-07-24 20:33:03

+0

正如已经提到的,确保你可以看到所有的错误和警告'error_reporting(E_ALL);'并且确保你的浏览器被允许存储cookie。 – martinstoeckli 2012-07-24 20:48:52

+0

感谢提示。错误报告已启用(error_reporting(E_ALL);)并且浏览器也被允许存储cookie。 – hansi 2012-07-24 21:09:50

回答

0

我不相信这会工作,因为$ _SESSION工作,标题需要设置。

通过在脚本中间设置header(),可以防止$ _SESSION被完全应用。

所以不要使用header()将位置更改为index.php。您可以在login.php上放置一个链接,点击该链接进入index.php,并查看您的会话是否已正确配置。

你也可以使用JavaScript来改变页面加载后,只是不使用PHP头()。

+2

重定向的工作没有问题,我在我的网站上以这种方式实现了Post-Redirect-Get模式。通常你在重定向之后添加'exit();否则脚本继续运行。 – martinstoeckli 2012-07-25 07:29:52

相关问题