Php 尝试运行';HTTP#u X#u FORWARDED#u FOR';时出现未定义的索引错误
我试图打印超全局变量Php 尝试运行';HTTP#u X#u FORWARDED#u FOR';时出现未定义的索引错误,php,Php,我试图打印超全局变量$\u SERVER['HTTP\u X\u FORWARDED\u']来测试我网站的代理阻止程序。打开文件时,服务器返回以下错误: 注意:未定义索引:第2行的in/Applications/XAMPP/xamppfiles/htdocs/test/test.php中的HTTP_X_FORWARDED_ 这是文件中的内容: <?php echo $_SERVER['HTTP_X_FORWARDED_FOR']; ?> 有什么问题吗?那个变量不可打印吗?当您不
$\u SERVER['HTTP\u X\u FORWARDED\u']
来测试我网站的代理阻止程序。打开文件时,服务器返回以下错误:
注意:未定义索引:第2行的in/Applications/XAMPP/xamppfiles/htdocs/test/test.php中的HTTP_X_FORWARDED_
这是文件中的内容:
<?php
echo $_SERVER['HTTP_X_FORWARDED_FOR'];
?>
有什么问题吗?那个变量不可打印吗?当您不定义变量时,似乎会出现错误
提前感谢。所有
$\u服务器
前缀为HTTP的变量表示从客户端收到的HTTP头
始终存在的唯一HTTP头是主机,因此。。。对于其他内容,您必须首先检查它是否存在。使用
if(array_key_exists("HTTP_X_FORWARDED_FOR", $_SERVER))
要在尝试访问变量之前检查该变量是否存在当代理转发未正确执行时,将出现此错误。你能分享更多的信息吗
另外,我建议使用getenv方法,并在var是否存在之前进行检查(条件和分配都可以写入if语句中):
仅供参考:如果环境变量不存在,getenv将返回FALSE
。From的可能重复:您可能在$\u服务器中找到以下任何元素,也可能找不到。请注意,如果在命令行上运行PHP,其中很少(如果有的话)可用(或者确实有任何意义)。
if ($forwarded = getenv('HTTP_X_FORWARDED_FOR')) {
echo $forwarded;
}