PHP会话变量自动分配给常规变量



我在IX网络托管中托管,我发现了一些奇怪的事情。我的所有$_SESSION变量都会自动分配给一个同名的常规变量。这是正常的PHP行为吗?我在php.net手册中查了一下,没有找到答案。下面是一个示例脚本:

<?php
$_SESSION['myvar'] = "hello";
echo $myvar; // after a page refresh, displays hello
$myvar = "goodbye";
echo $_SESSION['myvar']; // displays goodbye
?>

在我的本地主机上,我在未定义的变量$myvar中收到一条错误消息,但在IX中,脚本可以工作!危险或正常的PHP行为?提前谢谢。

此"功能"由名为register_globals的php.ini指令控制。自PHP 4.2以来,它一直被默认禁用,并在PHP 5.4中被完全删除。

除非您有依赖它的遗留代码,否则我真诚地建议您关闭它(如果可以的话)。可以说,安全方面的影响相当大。

相关内容

最新更新