愿你出走半生,归来仍是少年

ecshop ectouch提示“您的购物车中没有商品”的问题修复

情况:加商品进购物车,加完后进入购物车有添加的商品显示,但是点击提交就提示“您的购物车中没有商品”而无法完成订单。

解决办法:

ecshop打开文件/includes/init.php或ectouch打开/mobile/include/init.php

找到:

if (!defined(‘INIT_NO_USERS’))
{
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 (!defined(‘INIT_NO_USERS’))
{
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存入Cookie,或者在生成SESSION时,不取IP,而是在用户的机器存一个加密的Cookie。

在根目录下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 ectouch提示“您的购物车中没有商品”的问题修复

分享到:更多 ()