Codeigniter 3 会话无法正常运行

Posted

技术标签:

【中文标题】Codeigniter 3 会话无法正常运行【英文标题】:Codeigniter 3 sessions not functioning correctly 【发布时间】:2016-04-04 14:02:52 【问题描述】:

我已经挖掘了所有的 codeigniter 会话主题,但没有找到任何解决方案。

我为我的项目设置了一个登录控制器,它将用户名和密码发送到我的登录模型。这一切都很好。从数据库中提取信息后,我将设置一些会话信息。

这里有一些代码sn-ps: 配置:

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 14400;
$config['sess_save_path'] = '/var/www/mysite.com/application/cache/';
$config['sess_match_ip'] = TRUE;
$config['sess_time_to_update'] = 0;
$config['sess_regenerate_destroy'] = FALSE;

自动加载:

$autoload['libraries'] = array('session', 'database', 'form_validation', 'email');

从数据库中提取一个想法(工作正常):

$UserID = $this->LoginModel->login($username, $pass);

设置会话变量:

$this->session->set_userdata('Sess_ID', md5($UserID.date('YmdHis')));

该过程完成后,用户被转到下一页。这就是问题所在。我加载了一个简单的会话变量检查,甚至是一个 var_dump,但每次会话都是空的。

    public function __construct() 
        parent::__construct();

        echo var_dump($this->session);
        if ($this->SessionModel->basic() == false) 
            //$this->SessionModel->logout();
            echo 'Session Error';

        

    

所以,问题是,我如何从下一页/控制器调用会话?我习惯使用 session_start(),但在 codeigniter 中不需要。我还确认会话文件可以并且正在写入目录。

请输入...

【问题讨论】:

$this->session->userdata('Sess_ID'); 给了什么?? 目前正在给定一个自定义的 session_ID。 var_dump($_SESSION) 产生什么? (顺便说一句,不需要echo var_dump) 我已确认文件显示在缓存文件夹中。 发送到下一页的代码很简单:redirect(Select/index);把它带到我的选择控制器。 【参考方案1】:

获取所有会话数据 使用:

 print_r($this->session->all_userdata());

具体数据:

  print_r($this->session->userdata('name_of_the_session_variable'); 

在你的情况下:

   print_r($this->session->userdata('Sess_ID'));

【讨论】:

print_r($this->session->all_userdata());只是确认与 echo var_dump($this-session); 相同的东西是的。 用户登录后,您可以通过上述代码访问任何控制器/模型/视图中的该变量。 嗯,这就是问题所在,我不能。我的测试是在他们登录后运行的。我在许多项目中多次使用会话,这是我第一次使用 CI。我已按照我找到的所有说明进行操作。 您是否在 config.php 中使用了加密密钥? $config['encryption_key'] = 'yourkey'; 并将所有配置设为默认值,然后重试@Kaleb

以上是关于Codeigniter 3 会话无法正常运行的主要内容,如果未能解决你的问题,请参考以下文章

CodeIgniter 会话 ID 更改且无法正常工作

PHP Codeigniter 无法正常工作

Codeigniter 3 - 会话库

Codeigniter 3 - 从外部 Codeigniter 安装访问会话

在 codeigniter 中集成正常的 php 会话

CodeIgniter 会话类在 Chrome 中不起作用