2012-05-09 72 views
5

我有我的ci会话这个奇怪的问题。 在localhost是工作正常,但网上日志显示错误:codeigniter会话自定义数据丢失,但不在本地主机

The session cookie data did not match what was expected. This could be a possible hacking attempt.

我删除所有cookie和空会话表。我还将user_agent长度设置为255.基本路径也是正确的。当我登录会话ID的时候有什么注意事项如下:

在登录页面上,当检查用户名/密码时,id是相同的,然后我进入我的成员区域,id已经改变。

又如:
1.我去会员区,会话ID设置,我没有登录,即时消息发送到登录
2.在登录页面,会话ID被改变,我登录
3.确认,会话ID是不变的,我验证,并发送至会员区
4.在会员区,会话ID被改变,我不登陆,

在登录页面,我的课程表计数0行,当我登录会话表计数2/3行。其中1个,但不是具有当前会话ID的人拥有所有正确的数据。

希望有人能帮助我。

+0

也许这可以帮助:http://stackoverflow.com/questions/9007282/ci-2-0-3-session-heisenbug-session-is-lost-after-some-time-20-minutes -only-on –

回答

4

我觉得Codeignitor本地PHP会话库有问题。它会导致你描述的问题,因为如果没有设置cookie,它将不会被设置。此外,它将无法识别会话。为了避免这个问题,你可以使用Native Session Class

这里有几个链接来支持我的答案。 Problems with cookies/MAMP/Codeingiter http://myphplibrary.blogspot.in/2012/03/codeigniter-session-issue-fixation.html

+0

感谢您的帮助。我在其他地方读过同样的东西。那么我必须去参加Native Session Class。谢谢。 – Meddie

+0

不客气 –

+1

..魔法发生了。 NS课程就像一个魅力! – Meddie

1

有几件事要检查;

  1. 服务器本地时间vs您当地的时间 - 可能是cookie设置过期了吗?要确认 - 设置$配置[ 'sess_expiration']时间喜欢9999999,看看它是否工作

  2. 关闭$配置[ 'encrypt_cookie']

  3. 关闭$配置[ 'sess_match_ip']

  4. 确保您已设置了正确的cookie信息:

    $config['cookie_prefix'] = ""; 
    $config['cookie_domain'] = // YOUR DOMAIN 
    $config['cookie_path']  = // YOUR BASE URI 
    $config['cookie_secure'] = FALSE; 
    
+0

我实际上已经完成了所有设置(除了sess_expiration),这些设置已经按照您所描述的设置。它虽然没有工作。不管怎么说,还是要谢谢你。 – Meddie