PHP变量的URL参数

时间:2010-11-19 00:41:00

标签: php url parameters get

我已经做了一段时间的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配置问题,但是运行默认配置并且在配置文档中找不到任何内容。请帮忙。

提前致谢。 马特 -

2 个答案:

答案 0 :(得分:6)

这称为register globals.如果服务器已打开注册全局变量,则可以执行此操作。

我建议不要在任何服务器上注册全局变量。因为它可能会在您的系统中引入安全漏洞。

此安全漏洞的一个例子。

if($auth == true)
{
    // sensitive stuff here
}

如果auth只是一个常规变量,那么我可以在URL中执行此操作。

  

http://www.example.com/page.php?auth=true

查看敏感信息。

答案 1 :(得分:0)

您可能已启用register_globals

有关信息,请参阅the manual