Php 为变量赋值会更改会话变量';s值
我的一个PHP页面运行在一个据称安装了PHP5.2的远程服务器上,它接收到一个带有设置的“密码”键的POST请求,然后,看起来,最奇怪的事情可能会发生。在下面的代码中,POST请求的“passcode”被重新定义,以使值跟踪更简单,但在测试中,它仍然会产生注释中指示的超自然输出Php 为变量赋值会更改会话变量';s值,php,Php,我的一个PHP页面运行在一个据称安装了PHP5.2的远程服务器上,它接收到一个带有设置的“密码”键的POST请求,然后,看起来,最奇怪的事情可能会发生。在下面的代码中,POST请求的“passcode”被重新定义,以使值跟踪更简单,但在测试中,它仍然会产生注释中指示的超自然输出 $_POST["passcode"] = "hi"; $_SESSION["passcode"] = "hello"; echo $_SESSION["passcode"] . '<br />'; // p
$_POST["passcode"] = "hi";
$_SESSION["passcode"] = "hello";
echo $_SESSION["passcode"] . '<br />'; // prints "hello"
$passcode = $_POST["passcode"];
echo $_SESSION["passcode"] . '<br />'; // prints "hi"
$\u POST[“密码”]=“你好”;
$\会话[“密码”]=“你好”;
echo$\u会话[“密码”]。'
';//打印“你好”
$passcode=$_POST[“passcode”];
echo$\u会话[“密码”]。'
';//打印“嗨”
编辑:看来这是关于全球注册的。因此,还有一个问题:
如果我无法访问运行代码的服务器上的php.ini文件,有没有办法关闭此行为?显然,会话变量注册为全局变量。一个可能的原因是您编写的某个地方
$_SESSION['passcode']=&$passcode;
闻起来像
如果您无法编辑
php.ini
文件,可以在中禁用此设置。htaccess
文件如前所述会话变量可以配置为作为全局变量处理,因此可以通过$\u会话[“passcode”]
以及$passcode
访问。检查您的PHP配置(register\u Globals)更改变量的名称
$passcode
其他内容。?只有在接收文件中才有这些结果,或者在整个过程中,现有代码?这很奇怪。
当您注释掉第五行时,它是否相同?@MetalFrog接收到的php文件是目前为止我唯一测试它的地方。我宁愿更改我的托管提供商,而不是我的编程风格。