【发布时间】:2015-10-04 11:48:28
【问题描述】:
当用户从 PC 或平板电脑使用 Safari 时,我遇到了 CodeIgniter 会话问题。在 Google Chrome 和 Firefox 开发版上运行良好,我认为问题与 Safari 有关。
这是我登录成功后的会话代码:
$logged_in = array(
'username' => $out[0]['username'],
'user_id' => $out[0]['id'],
'logged_in' => TRUE
);
$this->session->set_userdata($logged_in);
$this->session->set_flashdata('user_data', $logged_in);
redirect('social/userprofile/' . $out[0]['username']);
问题是当用户尝试使用 Safari 登录网站时,他会在登录页面上再次被重定向。
这是因为:
public function check_logged($user2=""){
$check_session = $this->session->userdata('user_id');
if(!$check_session) {
redirect('social/index');
}
}
尝试使用会话登录,将会话保存为文件,我看到会话创建了 4 个文件,其中 3 个为空,一个包含会话数据的正确信息。
有什么建议吗?
【问题讨论】:
-
你的错误是什么?
-
用户再次被重定向到登录页面,因为在重定向到用户配置文件期间没有会话数据。
-
请使用登录功能更新您的代码。也是您检查会话 cookie 的用户配置文件。
-
问题不在于代码问题在于Safari和CI Session。我不知道为什么..所有代码在 Chrome 和 Firefox 下都能完美运行,但在 Safari 上不要设置会话。
-
你如何在那个方法中使用
$user2参数?
标签: php codeigniter session safari