-4

这是我的代码:

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

我没有得到实际的问题。帮帮我

4

3 回答 3

4

您将常量传递给getenv(),这实际上需要一个字符串。

改成:

if (getenv('HTTP_X_FORWARDED_FOR'))

它使用常量的原因是因为 PHP 无法找到常量,然后它会发出您看到的警告,然后使用常量名称作为字符串回退。

手册

字符串 getenv ( 字符串 $varname )

于 2012-12-17T07:15:42.630 回答
2

把它放在单引号中

getenv('HTTP_X_FORWARDED_FOR')
于 2012-12-17T07:15:31.133 回答
2

引用论点getenv

getenv('HTTP_X_FORWARDED_FOR');

否则 php 认为你正在传递一个常量。

http://sg2.php.net/getenv

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

除非您HTTP_X_FORWARDED_FOR之前定义了一个字符串,否则我认为这不是您想要的。

于 2012-12-17T07:15:52.100 回答