Dream Maker 老漂 不要有和人斗的心,你要赢的是你自己!

EcShop"您的购物车中没有商品"终于解决了!

前一段时间,有个客户说自己的ecshop网店出了状况,就是有时候登录的时候会自动退出。而且购物车也没规律的会清空。 
刚开始一直找不到原因,到最后才知道了。他说的状况是由于像学校,公司一类的局域网。ip变化的原因造成的。 

ECSHOP的SESSION采用IP生成用户唯一码,这样的话,多线接入的用户在路由自动切换时就会造成IP变化,这样,SESSION也就丢失了,与SESSION相关的登陆、购物车也就失效。 

解决办法是当用户第一次登陆时,将用户的IP存入Cookie,或者在生成SESSION时,不取IP,而是在用户的机器存一个加密的Cookie。 
第一种解决办法只需要修改ECSHOP根目录下includes\cls_session.php 大概在82行,找到这个。 

$this->_ip = real_ip(); 
修改为 
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, "/"); 
} 

将用户的首次登陆IP存入Cookie,其它功能依然使用ECSHOP的SESSION。
 

Tags: ecshop php

发布: 老漂 分类: 网站|站长 评论: 0 浏览: 88
留言列表
发表留言
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。