ECShop网站 用360浏览器无法添加产品进购物车

用360浏览器添加产品到购物车,购物车列表是空的,通过观察数据库ecs_cart表发现同一客户端每次添加产品session_id都会新建一次。

某些情况下,在同一个标签页中,用$_SERVER['HTTP_USER_AGENT']取得360浏览器提交的内容也是会变化的,具体见下面两段。

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)

问题的关键就出在这儿,有时说自己是IE7,有时说自己是IE8。

在includes/cls_session.php文件的96行:
if ($this->gen_session_key($tmp_session_id) == substr($this->session_id, 32))

这个判断就没法通过了(详见$this->gen_session_key()方法),于是就重新建立了一个session ID。

解决方案:

打开includes/cls_session.php文件,将gen_session_key()方法里的retrun语句换成

return sprintf(‘%08x’, crc32(ROOT_PATH . $ip . $session_id));

备注:360浏览器在4.1版本里解决了这个Bug

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值