ecshop后台登录频繁自动退出问题终极解决方法集锦

ecshop后台登录后,有时候会自动退出,而且还会很频繁,有的是后台操作两下就莫名退出了,有的是恰好三分钟左右登出。这让管理员很恼火,严重影响了后台使用。对于这一问题,网络上可给的解决方法各有不同、千篇一律的复制。首先这篇文章,总结囊括了网上已有的大部分解决方案;其次,也加入了博主自带的解决方法,供各位ecshop技术参考使用,总有一个适合你的网站。

方法一:网络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))
{
elseif (isset($_SERVER[‘HTTP_CLIENT_IP’]))
{
$realip = $_SERVER[‘HTTP_CLIENT_IP’];
}


中间省略N行


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全局设置session保存时间
ecshop程序目录/data/config.php
找到代码:
$session = “1440″;
改为你想要的数字,单位:秒

方法三:对于后台登录恰好3分钟退出可能有用
includes/init.php
api/init.php
admin/includes/init.php
wap/includes/init.php
使用编辑工具打开上面的几个文件,找到下面的代码:
@ini_set(‘session.cache_expire’, 180);
可将值“180”修改为自己所理想的值,如:
@ini_set(‘session.cache_expire’, 600); //10分钟

方法四:ecshop以IP地址来验证,而网络环境为双线网络

找到includes/cls_session.php,函数function gen_session_key($session_id)方法里,

删除掉代码:
if ($ip == ”)
{
$ip = substr($this->_ip, 0, strrpos($this->_ip, ‘.’));
}

方法五:ecshop后台完全无法保存session或cookie情况
打开admin/privilege.php文件,验证登录信息elseif ($_REQUEST[‘act’] == ‘signin’)块,找到代码:
//清除购物车中过期的数据
clear_cart();

在其前面增加代码: