-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 に答える