在我的不同脚本中(没有在此脚本上使用 Codeigniter,而是在同一个域上),我以这种方式设置会话数据:
<?php
session_start();
$_SESSION['something'] = 'test';
为什么它在那个单独的文件中工作,但在 Codeigniter 会话中却不起作用?
当我var_dump( $this->session->all_userdata() );
任何 Codeigniter 控制器时,它不会显示我的'something'
会话数据。
怎么了?可以这样做吗?
Codeigniter 管理自己的会话,并有几种不同的存储方法(它不一定使用 PHP 的本机会话存储作为后端)。
您仍然应该能够通过执行以下操作来访问代码点火器中的something
变量
session_start();
var_dump($_SESSION);
如果不担心修改 CI 核心,可以修改会话库以从 $_SESSION 中提取数据。
一个更干净的解决方案是编写一个钩子,将本机 CI 会话与默认的 PHP $_SESSION 超全局合并。