我有一个网站,要求您登录。它使用codeigniter会话。以下是上下文中的页面: http://dancedric.fourthdraft.com/ 和 http://www.fourthdraft.com/index.php/frontend/index/dancedric
为了向您展示问题,您必须实际登录系统。用户'demo'(不含引号)作为用户名和密码。现在再次加载两个链接。
他们是同一页。较短的一个只是htaccess'd重定向到第二个链接。
如果您注意到右上角的第一个链接,则会显示“登录”。在第二个,而不是登录,它显示您的名字,并显示您已经登录。
我的问题是,它们是同一页面,在那个角落,我有一个if语句:
if($this->session->userdata('xxx'))
然后显示他/她的名字然后控制面板链接;如果没有,只需显示'登录'。
我不知道htaccess和mod_rewrite是否正在干扰并终止第一个链接中的会话。我不认为会话已经死了,因为即使它在第一个链接上显示“登录”,当你点击它时它仍然会进入你的控制面板,即使它只是说“登录”。我希望第一个链接像第二个一样工作。如果用户已登录,则出于某种原因显示他的姓名等,因此无法按计划运行...
答案 0 :(得分:0)
尝试在$config['cookie_domain'] = ""; to $config['cookie_domain'] = ".fourthdraft.com";
config.php
答案 1 :(得分:0)
我有同样的问题,最后是如此明显,问题出在我的htaccess,我正在缓存html,css等。如果你把它放在.htaccess文件的末尾:
<ifModule mod_headers.c>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
你可以确保你的会话正常。这是因为例如: