ip 和 ips, 兩個變數都報未定義:
NOTIC: [8] Undefined variable: ip
NOTIC: [8] Undefined variable: ips
誰能幫忙改下~~
function Getip() { if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {//擷取代理ip $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); } if ($ip) { $ips = array_unshift($ips, $ip); } $count = count($ips); for ($i = 0; $i < $count; $i++) { if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) {//排除區域網路ip $ip = $ips[$i]; break; } } $tip = $ip ? $ip : $_SERVER['REMOTE_ADDR']; if ($tip == "127.0.0.1") {//獲得本地真實IP return $this -> get_onlineip(); } else { return $tip; } }
回複內容:
ip 和 ips, 兩個變數都報未定義:
NOTIC: [8] Undefined variable: ip
NOTIC: [8] Undefined variable: ips
誰能幫忙改下~~
function Getip() { if (!empty($_SERVER["HTTP_CLIENT_IP"])) { $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {//擷取代理ip $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); } if ($ip) { $ips = array_unshift($ips, $ip); } $count = count($ips); for ($i = 0; $i < $count; $i++) { if (!preg_match("/^(10|172\.16|192\.168)\./i", $ips[$i])) {//排除區域網路ip $ip = $ips[$i]; break; } } $tip = $ip ? $ip : $_SERVER['REMOTE_ADDR']; if ($tip == "127.0.0.1") {//獲得本地真實IP return $this -> get_onlineip(); } else { return $tip; } }
如果你僅僅是想忽略這個問題的話,那就調低報錯等級,在php.ini中設定error_reporting = E_ERROR或者直接在php中設定error_reporting(E_Error);
ThinkPHP解決這個就算了吧,TP本身就沒處理這些問題,要處理那麼使用的時候都得先通過isset驗證一下...
判讀這兩個變數是否有值,如果有就賦值,沒有就為空白,按照這個試試