CodeIgniter session 类在Chrome中不起作用

标签 codeigniter session google-chrome cookies

我已经在codeigniter项目中创建了一个登录系统,该系统在Firefox中可以正常工作,但在Chrome中不能正常工作,无法获取数据并设置 session ,但是当此代码将控件重定向到admin/dashboard时,我们会再次检查 session 数据。如果 session 数据不存在,则该代码将重定向用户以再次登录.............我的代码在下面,我不知道codeigniter中的此 session /cookie出了什么问题。

        $data = array(
             'user_id' => $user->id,
             'name' => $user->name,
             'user_type' => $user->type,
             'username' => $user->username,
             'is_logged_in' => true
        );

        $this->session->set_userdata($data);
        //echo "user ".$this->session->userdata("username"); exit;
        redirect("admin/dashboard", "location"); 

我已经搜索了很多,但在这种情况下没有人工作,例如在配置文件中更改了“ cookie_domain ”,但没有任何 react ...。

最佳答案

我也遇到了这种情况,并通过将 session 过期时间增加到一天来解决了这一问题。

更新

为什么通过延长 session 有效期可以起作用?

发生此问题的原因是用户和Web服务器位置的时区之间存在差异,例如我住在巴基斯坦,比美国时区早10个小时,我的服务器在美国。我在巴基斯坦时间2012年10月17日14:00请求该页面。美国的时间为17/10/2012 4:00,因为网络服务器位于美国, session 过期设置为2小时,服务器发送的cookie设置为于17/10/2012 6:00过期。现在,浏览器与您的本地PC时间进行交互,并获得时间17/10/2012 14:00,因此它会删除Cookie或始终根据您的请求刷新的Cookie。因此,最好将 session 到期时间设置为1天,因为新西兰和美国之间最大的时区差异是17小时(我不确定差异可能是我错了)。因此您的Cookie至少可以存活7个小时

关于CodeIgniter session 类在Chrome中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907962/

相关文章:

google-chrome - 无法使用 AutoHotkey 识别 Google Chrome 窗口

php - Codeigniter - 在 HTML 表中显示来自三个表的数据作为数组对象

session - 无法使 Spring 3 session 并发控制工作

node.js - 使用 NodeJS 中的用户对象登录后,将重新生成的 session ID 发送回用户代理

google-chrome - 从触摸屏在 Chrome 中启用触摸事件

linux - 阻止 Chrome 上的 getUserMedia 音频反馈

javascript - 服务器立即返回ajax post,而不执行重定向代码

php - 由于目标机器主动拒绝,无法建立连接。 [tcp ://127. 0.0.1:6379] - codeigniter

codeigniter - 如何根据数据量添加分页

java - 最大限度地减少部署期间的客户干扰