修改一句话可保存购物车信息

2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家

修改一句话可保存购物车信息,2.7.2 暂时测试没有问题。欢迎大家测试下。8楼更新了,可以兼容不同浏览器。不用保存登陆状态。
includes/cls_session.php

大概
120 行处的
  1. setcookie($this->session_name, $this->session_id . $this->gen_session_key($this->session_id), 0, $this->session_cookie_path, $this->session_cookie_domain, $this->session_cookie_secure);
复制代码
更改为
  1. if($this->session_name=='ECS_ID')
  2. {
  3. setcookie($this->session_name, $this->session_id . $this->gen_session_key($this->session_id), time()+30000000, $this->session_cookie_path, $this->session_cookie_domain, $this->session_cookie_secure);
  4. }
  5. else
  6. {
  7. setcookie($this->session_name, $this->session_id . $this->gen_session_key($this->session_id), 0, $this->session_cookie_path, $this->session_cookie_domain, $this->session_cookie_secure);
  8. }
复制代码
30000000 是保存的时间,以秒计算。
是cookie保存的,如果cookie被销毁,那么是不能保存

回答:
呵呵分享了,

二次开发 模板定制QQ:260767000

真的吗?2.7不知行不行!

1# 晓天

經測試後只要不退出商店,可以保留購物車內容
不過一經退出再登陸則購物車內容就會消失一空
希望這部分能夠改善為用數據庫保存購物車內容
畢竟持續保持登陸狀態,對資料安全會造成影響
且更換不同PC或瀏覽器登入商店應該也是無法保留購物車內容
希望能改善此一缺點

肯定不行.晓天,今天我可要批评你了
1:需要保留
2:如果购物车里面商品缺货,你必须自动删除购物车里面的商品.
不是这么简单的饿。

1:需要保留
这个方法是用cookie保存,session_id所以需要保留登录状态~
如果其他方法,那么修改的就会多了,还是可以更改的。


2:如果购物车里面商品缺货,你必须自动删除购物车里面的商品.
这个设计的没想到有这个情况~~ 哎。这个就比较麻烦了。
谢谢,这个还需要修改~



不知道哪里出了问题,老有个别客户不能下单,即下单时候购物车老是空的,明明点了购买,换台电脑就好了,bug

user.php
大概 if ($user->login($username, $password,isset($_POST['remember'])))
353行下
添加
  1. $sql="select session_id from ".$GLOBALS['ecs']->table('users')." where `user_id` ='".$_SESSION['user_id']."'";

  2. $usersession_id=$db->getOne($sql);
  3. if($usersession_id)
  4. {
  5. $sql="select count(rec_id) from ".$GLOBALS['ecs']->table('cart')." where `session_id` ='".SESS_ID."'";
  6. $users_rec_id=$db->getOne($sql);
  7. if($users_rec_id>0)
  8. {
  9. $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . "SET `session_id` ='". SESS_ID. " 'where `user_id` ='".$_SESSION['user_id']."'";
  10. $db->query($sql);
  11. }
  12. }
  13. else
  14. {
  15. $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . "SET `session_id` ='". SESS_ID. "' where `user_id` ='".$_SESSION['user_id']."'";

  16. }
复制代码
init.php
define('SESS_ID', $sess->get_session_id());
更改为
  1. if(!empty($_SESSION['user_id']))
  2. {
  3. $sql="select session_id from ".$GLOBALS['ecs']->table('users')." where `user_id` ='".$_SESSION['user_id']."'";
  4. $usersession_id=$db->getOne($sql);
  5. define('SESS_ID', $usersession_id);
  6. }
  7. else
  8. {
  9. define('SESS_ID', $sess->get_session_id());
  10. }
复制代码



user.php

  1. if (!empty($passwd_answer) && !empty($sel_question))
  2. {
  3. $sql = 'UPDATE ' . $ecs->table('users') . " SET `passwd_question`='$sel_question', `passwd_answer`='$passwd_answer'WHERE `user_id`='" . $_SESSION['user_id'] . "'";
  4. $db->query($sql);
  5. }
复制代码
下添加
  1. $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . "SET `session_id` ='". SESS_ID. " 'where `user_id` ='".$_SESSION['user_id']."'";
  2. $db->query($sql);
复制代码
还有一点记住
init.php
的header 部分前移

数据添加
ALTER TABLE `ecs_users` ADD `session_id` VARCHAR( 60 ) NOT NULL ;
表前缀更改为自己的

admin/privilege.php
删除
125 行
的 clear_cart();

测试站
http://ecshop.56730.com/u272
如果有问题请反馈

测试注册新会员默认就有一个产品在购物车里














————————————————————————————————————————
http://www.vonle.com/

8# 晓天


user.php中有兩處
if (!empty($passwd_answer) && !empty($sel_question))
{
$sql = 'UPDATE ' . $ecs->table('users') . " SET `passwd_question`='$sel_question', `passwd_answer`='$passwd_answer'WHERE `user_id`='" . $_SESSION['user_id'] . "'";
$db->query($sql);
}


下面都要添加嗎?
$sql = "UPDATE " . $GLOBALS['ecs']->table('users') . "SET `session_id` ='". SESS_ID. " 'where `user_id` ='".$_SESSION['user_id']."'";
$db->query($sql);


這部分不太清楚是什麼意思><
还有一点记住
init.php
的header 部分前移

这个部分是注册的部分,看程序上面的提示,有提示该部分注册。

还有一点记住
init.php
的header 部分前移
这个应该是可以不调整的,上次出现错误,可能是我调试的关系,header 前面有输出内容了。


刚实验了测试站,退出后再登录,购物车里依然保存

第一次登录,加入购物车1个商品,却发现里面出现3个

清空后,加入一个商品,退出,登录,OK 没问题

数据添加
ALTER TABLE `ecs_users` ADD `session_id` VARCHAR( 60 ) NOT NULL ;
表前缀更改为自己的
这个搞不懂,能不能清楚一点呢?

12# 驴云
失误、程序的小问题,没执行sql~ 。user.php已经更新了

请问怎样添加数据添加,在线等呀