不同 PHP 脚本和 CodeIgniter 之间的会话


Session between different PHP script and CodeIgniter

在我的不同脚本中(没有在此脚本上使用 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 超全局合并。