三种方法实现ecshop购物车退出不清空
2016-03-14 21:07
477 查看
效果 只要IP 不变 购物车中的商品就不会消失
方法一
有人提到 相同IP 购买混淆的问题
确实会存在这样的问题
可以参考这个方法 那就是只保留登陆过用户的数据
方法二
代码修改为
经过小小的思考 终于完美解决了
方法三
找到代码
将此代码 剪切到 init.php文件末尾并修改为
方法一 只判断IP 只要IP 不相同 就可以保存 而且可以跨浏览器 缺点 可能出现冲突
方法二 不会冲突,但是只有登录会员的才可以保留
方法三 不会冲突,但是需要浏览器支持cookie,不可以垮浏览器。
转载自:http://www.9958.pw/post/ecshop_cart_clean
方法一
修改 init.php 找到 define('SESS_ID', $sess->get_session_id()); 修改为 define('SESS_ID', md5(real_ip()));
有人提到 相同IP 购买混淆的问题
确实会存在这样的问题
可以参考这个方法 那就是只保留登陆过用户的数据
方法二
代码修改为
if($_SESSION['user_id']>0){ define('SESS_ID', md5($_SESSION['user_id'])); }else{ define('SESS_ID', $sess->get_session_id()); }
经过小小的思考 终于完美解决了
方法三
找到代码
if (!defined('INIT_NO_USERS')) { /* 初始化session */ include(ROOT_PATH . 'includes/cls_session.php'); $sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data')); define('SESS_ID', $sess->get_session_id()); }
将此代码 剪切到 init.php文件末尾并修改为
if (!defined('INIT_NO_USERS')) { /* 初始化session */ include(ROOT_PATH . 'includes/cls_session.php'); $sess = new cls_session($db, $ecs->table('sessions'), $ecs->table('sessions_data')); //define('SESS_ID', $sess->get_session_id()); if($_COOKIE['randnumber']==""){ setcookie("randnumber",rand(0,1000),time()+86400); } define('SESS_ID', md5($_COOKIE['randnumber'].real_ip())); }
方法一 只判断IP 只要IP 不相同 就可以保存 而且可以跨浏览器 缺点 可能出现冲突
方法二 不会冲突,但是只有登录会员的才可以保留
方法三 不会冲突,但是需要浏览器支持cookie,不可以垮浏览器。
转载自:http://www.9958.pw/post/ecshop_cart_clean
相关文章推荐
- 《Linux内核设计与实现》读书笔记 第二章 从内核出发
- iOS 简单架构及运行流程
- Linux文件系统之新建分区(fdisk命令)
- Linux 截图工具-shutter
- CentOs安装JDK过程中的小坑
- hadoop
- linux命令介绍(3)
- 搭建 CentOS 6 服务器(14) - CVS、SVN、Git
- Hadoop基础知识
- 【Linux进程间通信】 - 共享内存
- Apache+svn
- Error "InfoPath cannot save the following from:…….. 的解决方案
- linux内核分析四
- 关于Opencv图像的转换(YUV420sp)
- Linux 下解决pthread_create undefined reference 方法
- Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用
- Linux下的常用终端调试指令(2)
- Linux 下的GDB常用终端命令(1)
- linux语法
- Linux系统下安装Git