ecshop后台有时候会自动登出,而且还会很频繁,频繁的自动登出就严重的影响到了后台使用。
ecshop出现登录后闪退的问题解决
前几天出现网站后台以及用户中心登录后1秒中就自动退出或者还没登陆上就掉线的情况,原先一直以为是服务器没开启session服务后来把 phpinfo函数查询了下session服务用到的都开启了为什么会出现session自动丢失呢,后来又知道动态IP这个词,比较陌生,怎么实现的不 清楚没研究过,后期再研究下,后来查了下资料是由于ecshop自身获取的是IP来原因照成,看了有很多人遇到过这样的问题,下面就把这个问题解决掉
打开includes/lib_base.php,找到real_ip()函数:
修改lib_base.php文件real_ip()函数,在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']); 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; }
版权所有:《太阳花工作室》 => 《解决ecshop后台(登陆后闪退)频繁退出问题。》
本文地址:http://bg.artuion.com/杂七杂八/346.html
除非注明,文章均为 《太阳花工作室》 原创,欢迎转载!转载请注明本文地址,谢谢。