CodeIgniter 3 会话无法在 Safari 上运行
CodeIgniter 3 Session not working on Safari
当用户从 PC 或平板电脑使用 Safari 时,CodeIgniter 会话出现问题。在 Google Chrome 上,Firefox Dev Edition 运行良好,我认为问题与 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 为空文件 3,其中一个包含正确的会话数据信息。
有什么建议吗?
几件事,
CodeIgniter $this->session->userdata('user_id')
returns Boolean 对于这个,所以你不能检查它是否 空。你必须检查它是 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');
}
当用户从 PC 或平板电脑使用 Safari 时,CodeIgniter 会话出现问题。在 Google Chrome 上,Firefox Dev Edition 运行良好,我认为问题与 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 为空文件 3,其中一个包含正确的会话数据信息。
有什么建议吗?
几件事,
CodeIgniter $this->session->userdata('user_id')
returns Boolean 对于这个,所以你不能检查它是否 空。你必须检查它是 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');
}