【问题标题】:codeigniter Session in Safari browserSafari 浏览器中的 codeigniter 会话
【发布时间】:2019-08-06 19:32:07
【问题描述】:

我们正在使用以下内容来检查我们所有控制器功能的会话。

$this->session->userdata('Admin_logged_in')

https://www.codeigniter.com/user_guide/libraries/sessions.html

但在使用 Safari 浏览器的 iPhone X 上,它返回一个空值。没有为每个功能设置会话数组,因此用户无法登录界面。

以下是我们尝试过的不同解决方案:

CodeIgniter 3 会话无法在 Safari 上运行

http://mydons.com/fixed-mac-os-safari-codeigniter-sessionloginauthentication-issue/

https://forum.codeigniter.com/thread-63184.html

https://github.com/bcit-ci/CodeIgniter/issues/2880

如果会话从函数中删除,用户可以登录并且函数正常运行。我们开发的所有 Codeigniter 项目都会出现此问题。

检查会话:

public function index()
{
    if ($this->session->userdata('Admin_logged_in')) {
        $session_data = $this->session->userdata('Admin_logged_in');
        $id = $session_data['userId'];
        $data['Headding']="Dashboard";
        $this->template->load('admin_layout', 'contents', 'admin/Admin_Dashboard', $data);
    } else {
        redirect('Admin', 'refresh');
    }
}

在哪里设置会话:

$sess_array = array();
foreach ($result as $result) {
    $sess_array = array( 
        'userId' => $result->userId, 
        'mobile' => $result->mobile, 
        'email'  => $result->email, 
        'status' => $result->status, 
        'RoleID' => $ans['roleId'], 
    );
}
$this->session->set_userdata('Admin_logged_in', $sess_array);

【问题讨论】:

    标签: php session codeigniter-3


    【解决方案1】:

    您为什么要检查 Admin_logged_in 并设置与 User_logged_in 的会话?再次检查您的会话,尤其是您设置会话的位置。

    我认为您使用了错误的名称来检查会话。

    【讨论】:

    • 这里刚刚提到。但双方都是Admin_logged_in。 @罗宾辛格
    • 您的代码很完美,没有进一步的错误,我在浏览器上尝试了此代码,它运行良好。
    • 请检查 iPhone Safari 浏览器 @Robin
    • 我需要添加的地方 var timestamp = new Date().getTime(); ?
    猜你喜欢
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多