ECSHOP如何解决购物车中商品自动消失问题
2015-08-09 17:29
459 查看
最近有客户反映关于ECShop购物车的问题:需要加入多个商品到购物车时,发现之前加入到购物车的商品都自动消失了,只有最后一次加入购物车的商品在里面。那么,这是什么原因呢?
因为ECShop的SESSION采用IP生成用户唯一码,这样一来,多线接入的用户在路由自动切换时就会造成IP变化,这样,SESSION也就丢失了,与SESSION相关的登陆、购物车也就失效了。
解决办法有两种:
1、当用户第一次登陆时,将用户的IP存入Cookie
2、在生成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, "/");
}
就可以了。
因为ECShop的SESSION采用IP生成用户唯一码,这样一来,多线接入的用户在路由自动切换时就会造成IP变化,这样,SESSION也就丢失了,与SESSION相关的登陆、购物车也就失效了。
解决办法有两种:
1、当用户第一次登陆时,将用户的IP存入Cookie
2、在生成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, "/");
}
就可以了。
相关文章推荐
- linux 进程通信之 共享内存
- 释析#pragma pack(push,n) #pragma pack(n) #pragma pack() #pragma pack(pop)
- Linux - 主机的细部权限规划:ACL 的使用
- Linux - 主机的细部权限规划:ACL 的使用
- ubuntu 安装apache日志分析软件awstats
- linux 内核配置与编译
- N年前Nginx负载均衡在新浪播客中的应用
- linux 装java的两种方法
- LAMP网站平台的构建和PHP应用部署
- Nginx入门
- Linux - 有效群组(effective group)与初始群组(initial group),groups,newgrp
- Linux - 有效群组(effective group)与初始群组(initial group),groups,newgrp
- Linux内核驱动并发控制
- Linux内核驱动模块编程
- Hadoop分布式文件系统--HDFS结构分析
- Linux下用php调用C接口(扩展)的资料
- 《how tomcat work》 搬运工 Chapter 5: Container
- POJ 3641 Pseudoprime numbers
- 四大开源协议比较:BSD、Apache、GPL、LGPL
- 架构师要以自己的编程能为依托