A-A+

ecshop 购物车中商品突然消失不见的问题

2015年09月12日 PHP开源系统 暂无评论 阅读 12 views 次

在添加了购物车多个商品后,发现之前添加的商品不见了,只有最后一次添加的商品在购物车里,晕呀,在研究了 ecshop 如何保存购物车商品后,发现保存购物车商品采用了保存 ip 生成用户的唯一码,对于一般 ip 不变动的用户是有效的,但一旦对于多线接入的用户,只要当路由一变,ip 一变,session 也就丢失了,当然,用户登录,购物车这些也都失效了。

解决办法有两种:

1、当用户第一次登陆时,将用户的IP存入Cookie.

2、在生成SESSION时,不取IP,而是在用户的机器存一个加密的Cookie。

第一种方法相对较简单,这里讲一下具体操作步骤,只需要修改ECShop根目录下includes\cls_session.php 大概在82行,找到这个。

  1. $this->_ip = real_ip();  

修改为:

  1. if(isset($_COOKIE['real_ipd']) && !emptyempty($_COOKIE['real_ipd'])){   
  2.     $this->_ip = $_COOKIE['real_ipd'];   
  3.  }else{   
  4.     $this->_ip = real_ip();   
  5.     setcookie("real_ipd"$this->_ip, time()+36000, "/");   
  6. }  

就可以了。

标签:

给我留言