2013-03-22 130 views
0

我一直在使用的网站上我建立PHP会话和它一直工作正常,直到今天早上奇怪:PHP会话停止工作

其中一个网页上:

session_start(); 
$_SESSION['myarray']=$myarray; 

然后第二页我尝试:

session_start(); 
print_r($_SESSION['myarray']); 

但是它显示一个空数组。

我已经检查过1页,而且数组里有数值。

有什么想法来寻找调试呢?

谢谢。

(已解决):最终解决了这个问题 - 该行必须位于每个页面的顶部,您使用任何会话变量 - 从字面上看,行号为1!

+0

当您使用'print_r($ _ SESSION);'或'echo $ _SESSION ['myarray']' – Vinay 2013-03-22 14:12:35

+0

时,您会得到什么?确保第一页上的会话变量在您到达之前没有被覆盖第二页,并在第一页末尾的$ _SESSION中使用var_dump来确保会话数据仍然存在。 – llanato 2013-03-22 14:13:27

+0

嗨,变量没有被覆盖,因为它的集合在最后一次正确。当我在第二页上做一个var_dump时,我得到了数组(0){} 奇怪的是,这是昨天工作100%罚款 - 从那时起我只在模态视图完全独立于会话代码。 – 2013-03-22 14:21:53

回答

0

检查你的php设置是否有'register_globals = On'。我认为是这样。 当你在你的php设置中设置了register_globals时,它会将

$ _SESSION ['myarray']和$ myarray视为相同。

解决方案将禁用php中的register_globals,因为它在较新版本中已被弃用。 否则在$ _SESSION变量中使用不同的键名或将$ myarray变量更改为不同的名称。