Php 使用未定义的常量http_x_forwarded_

Php 使用未定义的常量http_x_forwarded_,php,Php,这是我的密码: 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

这是我的密码:

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

我不明白真正的问题是什么。帮帮我吧

用单引号引出来

getenv('HTTP_X_FORWARDED_FOR')

您正在将常量传递给,这实际上需要一个字符串

改为:

if (getenv('HTTP_X_FORWARDED_FOR'))
它使用常量的原因是因为PHP无法找到常量,它会发出您看到的警告,然后使用常量名称作为字符串返回

从:

字符串getenv(字符串$varname)


将参数引用到
getenv

getenv('HTTP\u X\u FORWARDED\u FOR')

否则php会认为您正在传递一个常量

string getenv(string$varname)
需要一个字符串


除非您以前将
HTTP\u X\u FORWARDED\u定义为一个字符串,我认为这不是您想要的。

我得到了访问者的IP地址,它在本地主机上运行良好,但在Web上遇到了问题。这是对相关侧栏上每个问题的重复,在标题中提到“未定义常数…假定”。请,请下次进行尽职调查。好的,我是否应该改为getenv(REMOTE_ADDR)或getenv(“REMOTE_ADDR”)@cnik2125是的,所有对
getenv
的调用基本上都是