Codeigniter创建会话并重定向不在IE中工作

时间:2010-12-22 16:10:07

标签: php codeigniter login

我正在使用codeigniter并拥有简单的用户登录设置。用户提交凭据,检查数据库是否有效,如果模型通过控制器传递会话ID并重定向到用户页面。如果数据不正确,则会将用户重定向到登录页面并显示错误消息。没什么好看的。问题是它在IE中不起作用。我不确定它是否是因为重定向或会话创建。适用于IE以外的所有浏览器。我在平行线上测试了8个窗口7,工作正常。奇怪的是它在Windows 7 IE 8的电脑上无法工作。有人能告诉我为什么每次用户登录时登录页面都会不断刷新吗?我被告知尝试添加此代码:

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="pragma" content="no-cache" /> <meta http-equiv="Expires" content="-1" /> <meta http-equiv="CACHE-CONTROL" content="NO-CACHE" /> </head>

哪个什么都没做。我还将会话处理程序从ci_sessions更改为cisessions,它们也没有帮助(我在另一个论坛上看到过)。任何人都可以帮忙吗?!

3 个答案:

答案 0 :(得分:2)

我在IE中使用CI Session时遇到了同样的问题。我在控制器构造函数中使用了下面的标题然后它现在适用于我:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

答案 1 :(得分:1)

您是否尝试过使用网址助手中包含的CI重定向方法来查看这是否适合您?

http://codeigniter.com/user_guide/helpers/url_helper.html

答案 2 :(得分:1)

我有类似的问题,其中ci会话在windows xp中不起作用,但在其他地方。所以我使用了Dariusz Debowczyk的Native Sessions库并修复了问题。好处是Darius在保持界面相同方面做得很好,所以你不必更改代码。您仍然可以使用$ this-&gt; session-&gt; userdata()和$ this-&gt; session-&gt; set_userdata()...等。您也可以使用flashdata。唯一的区别在于destroy函数而不是$ this-&gt; session-&gt; sess_destroy()他使用$ this-&gt; session-&gt; destroy()。

http://codeigniter.com/wiki/Native_session/