当用户从PC或平板电脑使用Safari时,我遇到了CodeIgniter会话的问题。在谷歌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为空,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');
}