情况:加商品进购物车,加完后进入购物车有添加的商品显示,但是点击提交就提示“您的购物车中没有商品”而无法完成订单。
解决办法:
网站开发打开文件/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, “/”);
}