0

我真的在桌子上敲了敲头:

我正在第 1 页上保存会话数据。

这是初始代码:

<?php
session_start();

$SID = session_id();

$newToken = md5(uniqid(mt_rand(), true)); 
$_SESSION['donate-token'] = $newToken;

我在 page1 的底部做了一个 var dump,所以我可以看到会话数据已保存。

然后,我检查了服务器文件系统并验证了会话文件是否到位并且数据存储在其中。

这是 page2 的开头(添加了一些调试代码):

<?php
session_start();
echo '<pre>';
echo 'session id: ', session_id(), "\n";

$sessionfile = ini_get('session.save_path') . '/' . 'sess_'.session_id();
echo 'session file: ', $sessionfile, ' ';

var_dump($_SESSION);
echo "</pre>\n";

所以我在本页顶部看到的是一个非常不同的会话 ID,以及一个空会话数组。

我不明白为什么一页可以写会话但下一页不能读!

4

2 回答 2

0

在第 2 页调用 session_start() 之前尝试添加异常。试试这个:

$a = session_id();
if(empty($a)) session_start();
于 2013-01-09T19:22:51.500 回答
0

查看脚本发送到浏览器的 cookie。(大多数浏览器都有内置工具来检查它们持有的 cookie。如果您在自己的系统上开发,通常可以按域搜索,例如 localhost。)

如果 cookie 未存储在您的浏览器中,请检查您浏览器的安全设置;如果 cookie 已存储,但路径对第二页不可用,则要么考虑将会话 cookie 配置为限制较少的路径,要么将两个脚本放入同一目录。

于 2013-01-09T20:09:54.503 回答