A-A+
ecshop 购物车中商品突然消失不见的问题
在添加了购物车多个商品后,发现之前添加的商品不见了,只有最后一次添加的商品在购物车里,晕呀,在研究了 ecshop 如何保存购物车商品后,发现保存购物车商品采用了保存 ip 生成用户的唯一码,对于一般 ip 不变动的用户是有效的,但一旦对于多线接入的用户,只要当路由一变,ip 一变,session 也就丢失了,当然,用户登录,购物车这些也都失效了。
解决办法有两种:
1、当用户第一次登陆时,将用户的IP存入Cookie.
2、在生成SESSION时,不取IP,而是在用户的机器存一个加密的Cookie。
第一种方法相对较简单,这里讲一下具体操作步骤,只需要修改ECShop根目录下includes\cls_session.php 大概在82行,找到这个。
- $this->_ip = real_ip();
修改为:
- if(isset($_COOKIE['real_ipd']) && !emptyempty($_COOKIE['real_ipd'])){
- $this->_ip = $_COOKIE['real_ipd'];
- }else{
- $this->_ip = real_ip();
- setcookie("real_ipd", $this->_ip, time()+36000, "/");
- }
就可以了。