Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为变量赋值会更改会话变量';s值_Php - Fatal编程技术网

Php 为变量赋值会更改会话变量';s值

Php 为变量赋值会更改会话变量';s值,php,Php,我的一个PHP页面运行在一个据称安装了PHP5.2的远程服务器上,它接收到一个带有设置的“密码”键的POST请求,然后,看起来,最奇怪的事情可能会发生。在下面的代码中,POST请求的“passcode”被重新定义,以使值跟踪更简单,但在测试中,它仍然会产生注释中指示的超自然输出 $_POST["passcode"] = "hi"; $_SESSION["passcode"] = "hello"; echo $_SESSION["passcode"] . '<br />'; // p

我的一个PHP页面运行在一个据称安装了PHP5.2的远程服务器上,它接收到一个带有设置的“密码”键的POST请求,然后,看起来,最奇怪的事情可能会发生。在下面的代码中,POST请求的“passcode”被重新定义,以使值跟踪更简单,但在测试中,它仍然会产生注释中指示的超自然输出

$_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文件是目前为止我唯一测试它的地方。我宁愿更改我的托管提供商,而不是我的编程风格。