session_start();
$_SESSION["somevariable"] = "blablabla";
print $_SESSION["somevariable"]."<br>";
$somevariable = "some bug";
print $_SESSION["somevariable"]."<br>";
output:
blablabla
some bug
我创建一些会话变量($ _session [&#34; data&#34;])然后我创建一些tipical变量($ data)然后$ _session变量被覆盖。 我们的服务器php版本是5.2.5,Zend Engine v2.2.0 对不起我的英文,谢谢你的帮助
答案 0 :(得分:2)
你有register globals turned on。这会导致$somevariable
声明覆盖$_SESSION['somevariable']
,因为它们指向同一个地方。
您应该将其关闭,因为它已被弃用,并且可能会导致您遇到的问题。
答案 1 :(得分:1)
About superglobals。正是这一行:
If the deprecated register_globals directive is set to on then the variables
within will also be made available in the global scope of the script.
For example, $_POST['foo'] would also exist as $foo.
答案 2 :(得分:0)
点击此处 codeviper
您可以随时更改或更新会话值,例如正常的变量值更改,但在这种情况下您不能,因为它会阻止您的结果是覆盖。 Global php variable securrity ON`背后的原因。
e.g。 $_SESSION['item']
与$item
您可以设置修改php.ini
文件:
session.bug_compat_42 = On
修改为:
session.bug_compat_42 = Off
希望这对你有帮助!
答案 3 :(得分:-2)
你正在将数据写入变量,会话将在页面中保持不变,直到它被某些东西强行写入。