php - CodeIgniter - 为什么我不能从另一个控制器中的控制器访问会话集?
问题描述
这是 Thisclass 控制器,我最初在其中设置了一个会话变量,其中 $data 是一个包含从数据库中获取的值的数组
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
*
*/
class Thisclass extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
// The code for fetching values is here
$this->session->set_userdata("mysession",$data);
}
}//end class
?>
这是我试图访问该变量的另一个类控制器
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
/**
*
*/
class Anotherclass extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
var_dump($this->session->userdata('mysession'));
}
}//end class
但是,该 var_dump 返回 null。我已经检查了会话库,它包含在 autoload.php 中。我一次又一次地检查了索引,它匹配了。那么,我不能调用该变量的原因可能是什么?在 Web 服务器中,它确实有效。会话变量可以在另一个控制器中访问,在这个本地副本中,它似乎不起作用。我已经检查了必要的设置,看起来还不错。谢谢你的帮助。。
解决方案
对于这种特定情况,此解决方案有效。
我在xampp的php.ini中把session.auto_start=0改成了session.auto_start=1。我在这里找到了答案:php - Session are lost after redirect in CodeIgniter 3
我意识到这是关于 Web 服务器配置的问题。
推荐阅读
- python - 根据索引对多维数组中的元素求和
- mysql - SQL GROUP BY INNER JOIN 和 COUNT
- php - Laravel 5.2:预期响应代码 220,但得到代码“500”,消息“500 Unrecognized command”
- asp.net-core - 在 Scrutor 中多次使用 AddClasses
- python - 哪个 numpy 索引是副本,哪个是视图?
- javascript - 如果属性与比较值不匹配,如何更改数组中对象属性的值?
- python - pandas 按相同键对分组项目进行过滤
- c# - 在 Clickhouse 客户端中禁用 SQL 日志记录
- python - 我正在尝试使用 CSV 文件中的数据绘制饼图,但出现我不明白的错误
- javascript - 使用 js 添加 html 后标签链接不起作用