我有一个应用程序,在其中,我设置了一些会话变量,稍后当我尝试检索它们时,它们不存在。我在类似案例中找到的解决方案是使会话保存文件夹可写。在我的情况下,该文件夹实际上是可写的,我已使用以下代码检查它:
if (!is_writable(session_save_path())) {
echo 'Session path "'.session_save_path().'" is not writable for PHP!';
}
下面是我从控制器获取var_dumping $this->session
后得到的结果的快照:
欢迎任何建议/想法。
答案 0 :(得分:2)
问题在于您的配置。特别是这一行
$config['sess_save_path'] = NULL;
因为您正在使用'文件'必须为sess_driver
提供sess_save_path
值。
来自CI documentation,会话类
不支持PHP中使用的目录级别和模式格式 session.save_path,它有大多数硬编码的选项 安全。相反,只支持绝对路径 $配置[' 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”