CodeIgniter 3会话无法在Safari上运行

时间:2015-10-04 11:48:29

标签: php codeigniter session safari

当用户从PC或平板电脑使用Safari时,我遇到了CodeIgniter会话的问题。在谷歌C​​hrome和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为空,1文件具有会话数据的正确信息。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

很少,

CodeIgniter $this->session->userdata('user_id')为此返回布尔,因此您无法检查其为空。您必须检查其 true false

改变这个:

public function check_logged($user2=""){
  $check_session = $this->session->userdata('user_id');
     if(empty($check_session)) {
       redirect('social/index');
}

public function check_logged($user2=""){
  $check_session = $this->session->userdata('user_id');
     if(!$check_session) {
       redirect('social/index');
}