ECSHOP登录自动退出ession失效无法下单因为动态ip问题导致解决方法

2016-06-13 13:05 来源:www.chinab4c.com 作者:ecshop专家

修改lib_base.php文件real_ip()函数: function real_ip() {     static $realip = NULL;       if ($realip !== NULL)     {         return $realip;     }   if(isset($_COOKIE['real_ipd']) && !empty($_COOKIE['real_ipd'])){ $realip = $_COOKIE['real_ipd'];   return $realip; }       if (isset($_SERVER))     {         if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))         {             $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);               /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */             foreach ($arr AS $ip)             {                 $ip = trim($ip);                   if ($ip != 'unknown')                 {                     $realip = $ip;                       break;                 }             }         }         elseif (isset($_SERVER['HTTP_CLIENT_IP']))         {             $realip = $_SERVER['HTTP_CLIENT_IP'];         }         else         {             if (isset($_SERVER['REMOTE_ADDR']))             {                 $realip = $_SERVER['REMOTE_ADDR'];             }             else             {                 $realip = '0.0.0.0';             }         }     }     else     {         if (getenv('HTTP_X_FORWARDED_FOR'))         {             $realip = getenv('HTTP_X_FORWARDED_FOR');         }         elseif (getenv('HTTP_CLIENT_IP'))         {             $realip = getenv('HTTP_CLIENT_IP');         }         else         {             $realip = getenv('REMOTE_ADDR');         }     }       preg_match("/[\d\.]{7,15}/", $realip, $onlineip);     $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; setcookie("real_ipd", $realip, time()+36000, "/");       return $realip; }