为变量赋值会更改会话变量的值

Des*_*ume 2 php

我的一个PHP页面在一个据称安装了PHP 5.2的远程服务器上运行,它接收一个带有"密码"密钥的POST请求,然后,看起来,最奇怪的事情可能发生.在下面的代码中,POST请求的"密码"被重新定义,以使您的值跟踪更简单,但在测试中它仍然产生评论中指示的超自然输出.

$_POST["passcode"] = "hi";
$_SESSION["passcode"] = "hello";

echo $_SESSION["passcode"] . '<br />'; // prints "hello"
$passcode = $_POST["passcode"];
echo $_SESSION["passcode"] . '<br />'; // prints "hi"
Run Code Online (Sandbox Code Playgroud)

编辑:所以看起来像是关于register_globals.因此是另一个问题:

如果我无法访问服务器上运行代码的php.ini文件,有没有办法关闭此行为?

Mic*_*ker 8

显然,会话变量被注册为全局变量.


Mch*_*chl 7

register_globals一样闻起来

如果你不能编辑你的php.ini文件,你可以在禁用此设置.htaccess文件,描述在这里