我已经做了一段时间的PHP,从来没有需要帮助,但这次完全搞糊涂了。我有一行代码和一个echo语句。
问题:URL参数自动假设同名的PHP变量值。例如,我有一个带有名为'var_name'的参数的URL,如下所示:
http://www.example.com?var_name=abc123
和一个带有名为'var_name'的变量的1行PHP脚本,如下所示:
echo $ var_name;
然后我在页面上输出:abc123
这是PHP页面中唯一的代码!这种行为正是我期望$ _GET工作的方式,但我没有使用它。
我只在一台运行PHP 5.2的特定服务器上遇到此问题。我已在其他4台服务器上测试过,没有这种行为。我认为这是一个PHP配置问题,但是运行默认配置并且在配置文档中找不到任何内容。请帮忙。
提前致谢。 马特 -
答案 0 :(得分:6)
这称为register globals.如果服务器已打开注册全局变量,则可以执行此操作。
我建议不要在任何服务器上注册全局变量。因为它可能会在您的系统中引入安全漏洞。
此安全漏洞的一个例子。
if($auth == true)
{
// sensitive stuff here
}
如果auth只是一个常规变量,那么我可以在URL中执行此操作。
查看敏感信息。
答案 1 :(得分:0)
您可能已启用register_globals
:
有关信息,请参阅the manual。