最关于ecshop2.7.0在部分IE浏览器下丢$_SESSION的问题

2016-07-07 15:00 来源:www.chinab4c.com 作者:ecshop专家



客户在他的浏览器上无法正常登录后台,也无法正常登录会员中心,客户的的IE版本是:

经查常是$_SESSION丢失,在网上查找发现IE6也有不少SESSION丢失的问题,这时,就要通过COOKIE来找回登录状态,但是
includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法后一切正常了:

/**
* 检查cookie
*
* @accesspublic
* @param
*
* @return void
*/
function check_cookie ()
{
if ( isset($_COOKIE['ECS'])&& isset($_COOKIE['ECS']['user_id'])&& isset($_COOKIE['ECS']['password']))
{
$ecs_user_id= $_COOKIE['ECS']['user_id'];
$ecs_user_pass = $_COOKIE['ECS']['password'];
$sql = "SELECT " . $this->field_name ." AS user_name".
" FROM " . $this->table($this->user_table) .
" WHERE ".$this->field_id." = '$ecs_user_id' AND ".$this->field_pass." = '$ecs_user_pass'";
$username = $this->db->getOne($sql);
if ($username && ($this->charset != 'UTF8'))
{
$username = ecs_iconv($this->charset, 'UTF8', $username);
}
return $username;
}
else
{
return '';
}
}


最新的问题修复请参考:ecshop用户登录问题及ecshop购物车问题解决办法附修改后的ecshop.php文件供大家下载:

回答:
不错
cookie确实能够弥补session的丢失

挺好啊
哈哈

当会员退出后,再刷新下首页
$ecs_user_id= $_COOKIE['ECS']['user_id'];
$ecs_user_pass = $_COOKIE['ECS']['password'];
这两行代码出错,请问什么原因呢?

报什么错,是数组的index未定义吗?

报什么错,是数组的index未定义吗?
ecshopkaifa 发表于 2009-10-21 12:33


出现以下错误:

Notice: Undefined index: user_id in N:\web\wwwroot\includes\modules\integrates\ecshop.php on line 181

Notice: Undefined index: password in N:\web\wwwroot\includes\modules\integrates\ecshop.php on line 182

请问如何解决呢?

确实有错误,

嗯,把判断条件再多加一点,就应该就OK了

if (isset($_COOKIE['ECS']))
改成
if (isset($_COOKIE['ECS']) && isset($_COOKIE['ECS']['user_id'])&& isset($_COOKIE['ECS']['password']))



看来不少人遇到过这个bug,这个bug其实挺严重的,影响很大

按照方法修改后还会导致无法下订单,BUG?

查看一下是否是这个代码的原因还是其它原因

我的也是这个问题.看看我

我的也是着个问题.我看看是什么问题.

ddddddddddddddddddddddddddddddd

我的浏览器是IE8 ,按照热心版主的做法,结果前台登录后退不出去了...^_^

是啊,退不出去了