codeigniter - 无法从已设置的会话中检索会话变量

时间:2018-02-18 12:45:51

标签: php codeigniter session

我有一个应用程序,在其中,我设置了一些会话变量,稍后当我尝试检索它们时,它们不存在。我在类似案例中找到的解决方案是使会话保存文件夹可写。在我的情况下,该文件夹实际上是可写的,我已使用以下代码检查它:

if (!is_writable(session_save_path())) {
    echo 'Session path "'.session_save_path().'" is not writable for PHP!'; 
}

下面是我从控制器获取var_dumping $this->session后得到的结果的快照: var_dump(<code>$this->session</code>)

欢迎任何建议/想法。

3 个答案:

答案 0 :(得分:2)

问题在于您的配置。特别是这一行

$config['sess_save_path']  = NULL;

因为您正在使用&#39;文件&#39;必须为sess_driver提供sess_save_path值。

来自CI documentation,会话类

  

不支持PHP中使用的目录级别和模式格式   session.save_path,它有大多数硬编码的选项   安全。相反,只支持绝对路径   $配置[&#39; sess_save_path&#39]。

因此,您需要提供会话文件文件夹的绝对路径。

$config['sess_save_path']  = 'complete/path/to/sessions/';

您可以找到一个控制器和视图,以便您轻松测试会话设置HERE

答案 1 :(得分:0)

尝试按如下方式设置会话。

$session_data = array('user_id' => $user_id);
$this->session->set_userdata('logged_in', $session_data);

希望这会对你有所帮助。

答案 2 :(得分:0)

尝试将application / config.php中的base_url设置为“ http://localhost/ciappfolder