2014-10-17 75 views
1

我有一个非常奇怪的行为与PHP的会话变量。

问题是会话值正在自动重写,没有明显的原因。

代码片段龙虎斗是这样的:

<?php 

session_start(); 
$_SESSION["id"] = 5; 
echo $_SESSION["id"]; // Echoes 5 
$id = $_REQUEST["id"]; // Being for example $_REQUEST["id"] = 3 
echo $_SESSION["id"]; // Echoes 3 

?> 

它可能是一些错误配置?

P.S:运行PHP版本5.3.3是

回答

2

你可能有register_globals设置为在您的php.ini配置。这意味着您只能使用变量$id参考$_SESSION['id'],导致您在上面的示例中看到的问题。将register_globals设置为在php.ini中关闭并重试。

+0

谢谢,真的很简单的解决方案!问题2是客户_需要_在共享主机上使用该程序,而不可能更改任何php变量。所以我选择这个作为接受的答案,但不幸的是不能解决我的问题 – jila 2014-10-17 10:08:32

+0

尝试将以下内容添加到.htaccess文件:php_flag register_globals 0 – danmullen 2014-10-17 10:12:46

+0

不能...几乎免费共享主机的缺点之一...如果客户想要一个更新,我将修复在php.ini中使用ini_set()或.htaccess文件禁用'register_globals'。不管怎么说,还是要谢谢你 – jila 2014-10-17 11:01:06