我正在尝试打印超全局变量$_SERVER['HTTP_X_FORWARDED_FOR']
,以便为我的网站测试代理阻止程序。当我打开文件时,服务器返回此错误:
注意:未定义的索引:第2行/Applications/XAMPP/xamppfiles/htdocs/test/test.php中的HTTP_X_FORWARDED_FOR
这就是文件中的内容:
<?php
echo $_SERVER['HTTP_X_FORWARDED_FOR'];
?>
问题是什么?那个变量是不可打印的?当您没有定义变量时,似乎出现错误。
提前致谢。
答案 0 :(得分:1)
前缀为$_SERVER
的所有HTTP_
个变量代表您从客户端收到的HTTP标头。
唯一始终存在的HTTP标头是Host
,因此......对于其他所有内容,您必须先检查它是否存在。
答案 1 :(得分:0)
使用
if(array_key_exists("HTTP_X_FORWARDED_FOR", $_SERVER))
在尝试访问变量之前检查变量是否存在
答案 2 :(得分:0)
当代理转发未正确完成时,此错误将发生。你能分享更多信息吗?
另外我建议使用 getenv 方法并检查var是否存在(两者,条件和分配都可以写在if语句中):
if ($forwarded = getenv('HTTP_X_FORWARDED_FOR')) {
echo $forwarded;
}
fyi:如果环境变量不存在,getenv将返回FALSE
。