可能重复:
PHP: “Notice: Undefined variable” and “Notice: Undefined index”
我在网上收到以下php通知。我在通知中检查了这一行,但是这些行被评论了。还有什么我可以检查来解决这个问题?
PHP 5.0.4 (WINNT)
NOTICE: [8] Undefined index: HTTP_REFERER Line: 4 File: d:\IpPlan\www\adodb\adodb.inc.php(1) : eval()'d code
NOTICE: [8] Undefined index: HTTP_REFERER Line: 4 File: d:\IpPlan\www\adodb\adodb-time.inc.php(1) : eval()'d code
NOTICE: [8] Undefined index: HTTP_REFERER Line: 4 File: d:\IpPlan\www\adodb\adodb-iterator.inc.php(1) : eval()'d code
NOTICE: [8] Undefined index: HTTP_REFERER Line: 4 File: d:\IpPlan\www\class.dbflib.php(1) : eval()'d code
NOTICE: [8] Undefined index: HTTP_REFERER Line: 4 File: d:\IpPlan\www\config.php(1) : eval()'d code
答案 0 :(得分:1)
您在某个时候尝试访问数组中的索引HTTP_REFERRER
,但是没有为该索引设置任何值。通常这是因为您的代码中有$_SERVER['HTTP_REFERRER']
这样的内容。
修复是在没有首先检查它是否已定义(使用isset()
)的情况下不访问可能未定义的数组元素。有关详细信息,请参阅the PHP manual。
答案 1 :(得分:0)
使用isset()
函数检查变量是否已设置。
使用此代替您现在使用的内容。
if (isset($_SERVER['HTTP_REFERER'])){
echo $_SERVER['HTTP_REFERER'];
//and whatever you need to go.
}
else{
echo "Referer was null";
}
答案 2 :(得分:-1)
您可以禁用显示的注意事项(毕竟它们只是通知,通知您某些事情,而不是错误或警告)。
详细信息:http://php.net/manual/en/function.error-reporting.php
您可以在脚本中设置:
error_reporting(E_ALL ^ E_NOTICE);
或者在PHP.INI
文件中查找错误报告并在那里进行编辑(推荐)。