![](/img/trans.png)
[英]Notice: Undefined index: HTTP_X_FORWARDED_FOR Error in Function
[英]Undefined index notice HTTP_CLIENT_IP and HTTP_X_FORWARDED_FOR
<?php
$clientIP = $_SERVER['HTTP_CLIENT_IP'];
$checkForProxy = $_SERVER['HTTP_X_FORWARDED_FOR'];
$remote_addr = $_SERVER['REMOTE_ADDR'];
if(!empty($clientIP)) {
$ip_address = $http_client_ip;
}
else if(!empty($checkForProxy)) {
$ip_address = $checkForProxy;
}
else {
$ip_address = $remote_addr;
}
echo $ip_address;
?>
Notice: Undefined index: HTTP_CLIENT_IP in C:\xampp\htdocs\series\61 IP\better method\a.php on line 2
Notice: Undefined index: HTTP_X_FORWARDED_FOR in C:\xampp\htdocs\series\61 IP\better method\a.php on line 3
::1
我收到未定義的索引錯誤。 這是因為這兩行
$clientIP = $_SERVER['HTTP_CLIENT_IP'];
$checkForProxy = $_SERVER['HTTP_X_FORWARDED_FOR'];
如何擺脫這種情況,為什么會這樣,因為我在本地主機上運行它?
您可以檢查$_SERVER
數組中是否存在這樣的鍵:
$clientIP = false;
if (array_key_exists('HTTP_CLIENT_IP', $_SERVER))
$clientIP = $_SERVER['HTTP_CLIENT_IP'];
$checkForProxy = false;
if (array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER))
$checkForProxy = $_SERVER['HTTP_X_FORWARDED_FOR'];
我認為由於該錯誤,您正在使用localhost
如果您的網站位於虛擬主機上,則可以使用$_SERVER
數組,但是在使用localhost
,只能使用getenv()
數組。
通過這種方式,而不是使用
$_SERVER['HTTP_CLIENT_IP'];
$_SERVER['HTTP_X_FORWARDED_FOR'];
然后,您可以在localhost
上使用這些數組:
getenv('REMOTE_ADDR');
getenv('HTTP_X_FORWARDED_FOR');
順便說一句, mail()
函數也不起作用,因此,您必須設置MTA之類的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.