未定义的变量_GET

时间:2016-03-22 09:39:13

标签: php variables get undefined

我遇到了php webapplication的问题。它会在10-20小时后无理由停止工作,因为$_GET未定义。

请求如下:

http://host/index.php?id=1

索引文件有一个lil代码片段,如:

if (isset($_GET['id']) && is_numeric($_GET['id'])) {
    $id = intval($_GET['id']);
} else {
    die('wrong id');
}

var_dump $_GET返回NULL。 var_dump为$_SERVER表示REQUEST_METHOD为GET,QUERY_STRING为id = 1。 var_dump() $_REQUEST显示了id => 1,所以它只是$_GET没有工作。

当发生这种情况时,它会发生在服务器上和所有用户的所有Web应用程序中。重新启动网络服务器后,所有内容都会再次运行几个小时......

系统是Windows 2008 R2,Apache 2.4.18 32位/ PHP 7.0.4 32位。

2 个答案:

答案 0 :(得分:0)

在未设置的GET值上使用is_numeric函数可能会出错并停止脚本。

确保在使用is_numeric函数之前设置了GET值。

if(!isset($_GET['id']))
{
    die('wrong id');
}
elseif(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
}
else
{
    die('wrong id');
}

答案 1 :(得分:0)

如果您的$ _REQUEST var保留了值但$ _GET没有,则会出现错误报告:https://bugs.php.net/bug.php?id=73554