这是我的代码:
if (getenv(HTTP_X_FORWARDED_FOR))
{
$pipaddress = getenv(HTTP_X_FORWARDED_FOR);
$ipaddress = getenv(REMOTE_ADDR);
}
else
{
$ipaddress = getenv(REMOTE_ADDR);
}
我收到此错误:
use of undefined constant http_x_forwarded_for-assumed http_x_forwarded_for
我不知道实际问题是什么。帮帮我
答案 0 :(得分:4)
你将常量传递给getenv()
,这实际上需要一个字符串。
更改为:
if (getenv('HTTP_X_FORWARDED_FOR'))
它与常量一起工作的原因是因为PHP无法找到常量,然后发出你看到的警告,然后使用常量名称作为字符串回退。
来自Manual:
string getenv(string $ varname)
答案 1 :(得分:2)
将它放在单引号中
getenv('HTTP_X_FORWARDED_FOR')
答案 2 :(得分:2)
将参数引用到getenv
getenv('HTTP_X_FORWARDED_FOR');
否则php认为你传递了一个常数。
string getenv ( string $varname )
需要一个字符串。
除非您先前将HTTP_X_FORWARDED_FOR
定义为字符串,否则我认为这不符合您的意图。