ecshop购物车退出不清空几种方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-12-06 15:31:52 浏览: 评论:0
今天想做几个实例就是当会员退出登录时他的购物车里面的数据不会清空,下次登录时查看购物车还有自己以前看到的数据了,这个和淘宝有一点像了.
效果:只要IP不变,购物车中的商品就不会消失.
方法一,修改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);
- } //开源软件:phpfensi.com
- define('SESS_ID', md5($_COOKIE['randnumber'].real_ip()));
- }
方法一 只判断IP,只要IP不相同就可以保存,而且可以跨浏览器,缺点可能出现冲突.
方法二 不会冲突,但是只有登录会员的才可以保留.
方法三 不会冲突,但是需要浏览器支持cookie,不可以垮浏览器.
Tags: ecshop购物车 ecshop清空
相关文章
- ·在ECSHOP购物车页面显示商品描述(2014-07-17)
- ·ecshop在购物车基础上添加立即购买功能(2014-11-15)
- ·ecshop购物车随会员退出自动清空问题(2014-11-18)
- ·ecshop 直接购买,不经过购物车简单实现(2014-11-18)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)