我遇到了PHP会话cookie的问题,它只影响使用安全软件(包括McAffee,AVG和Norton)的Internet Explorer用户。 IE和这些安全包的一些(但显然不是全部)用户无法登录或添加项目到他们的购物篮,因为看起来该软件阻止了PHP创建的会话cookie。
会话使用session_start()
启动,我们为其定义了以下设置:
@ini_set('session.use_cookies', 1);
@ini_set('session.use_trans_sid', 'Off');
@ini_set('url_rewriter.tags', '');
@ini_set('session.gc_probability', 1);
@ini_set('session.gc_divisor', 100);
@ini_set('session.referer_check', '');
@ini_set('session.gc_maxlifetime', 604800);
session_set_cookie_params($this->session_lifespan, '/', null, null, TRUE);
session_start();
会话生命周期设置为21600(六小时)
可能导致Cookie被阻止的原因是什么?这些安全包是否为此所知,是否有任何编码解决方法?
答案 0 :(得分:0)
我相信在从/切换到Http / Https时你需要有一个不同的会话。
由于会话处理程序通常使用cookie,并且无法在http / https之间共享cookie,因此在切换后会话似乎会丢失。
答案 1 :(得分:0)
可能导致Cookie被阻止的原因是什么?
愚蠢人的哑软件?当然还有其他人认为他们正在为这个世界提供服务by breaking existing functionality。
但如果你不能复制这个问题,那么他们可能没有做错任何事。
会话生命周期设置为21600(六小时)
您是否在会话Cookie上设置了到期时间?我是这样,既然FF和MSIE私有'私人'浏览功能 - 我希望这更有可能成为候选人。
请确保您在Cookie上设置了httponly标志 - 并尝试设置安全标记(尽管这显然会对导航产生其他影响)。