前一段時(shí)間,有個(gè)客戶說自己的ecshop網(wǎng)店出了狀況,就是有時(shí)候登錄的時(shí)候會自動退出。而且購物車也沒規(guī)律的會清空。
剛開始一直找不到原因,到最后才知道了。他說的狀況是由于像學(xué)校,公司一類的局域網(wǎng)。ip變化的原因造成的。
ECSHOP的SESSION采用IP生成用戶唯一碼,這樣的話,多線接入的用戶在路由自動切換時(shí)就會造成IP變化,這樣,SESSION也就丟失了,與SESSION相關(guān)的登陸、購物車也就失效。
解決辦法是當(dāng)用戶第一次登陸時(shí),將用戶的IP存入Cookie,或者在生成SESSION時(shí),不取IP,而是在用戶的機(jī)器存一個(gè)加密的Cookie。
解決辦法只需要修改ECSHOP根目錄下includes\cls_session.php?大概在82行,找到這個(gè)。
$this->_ip?=?real_ip();
修改為
[php]
if(isset($_COOKIE['real_ipd'])?&&?!empty($_COOKIE['real_ipd'])){
$this->_ip?=?$_COOKIE['real_ipd'];
}else{
$this->_ip?=?real_ip();
setcookie("real_ipd",?$this->_ip,?time()+36000,?"/");
}
[/php]
將用戶的首次登陸IP存入Cookie,其它功能依然使用ECSHOP的SESSION。