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();
在其前面增加代碼:
