我检查了结果,但无法解决我的错误。
我只是使用了session_start,它给出了此警告消息。
ini_set():会话处于活动状态。您不能更改会话模块的 此时的ini设置
下面是我的代码-
$sess_array = array(
'id' => $row->empid,
'username' => $row->emp_name,
'loggedIn' => '1',
'usertype' => $usertype
);
$this->session->set_userdata('logged_in', $sess_array); // store session
Dashboard.php页面-
session_start();
error_reporting(E_ALL & ~E_NOTICE);
//error_reporting(0);
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Dashboard extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
if ($this->session->userdata('logged_in'))
{
$EmpName = $this->session->userdata['logged_in']['username'];
$Emp_id = $this->session->userdata['logged_in']['id'];
}
}
尽管问了同样的问题,但是我没有为这个问题找到合适的解决方案。请任何人解决该查询。
答案 0 :(得分:1)
这确实对我有用,基本上您首先检查会话,然后如果未初始化,则调用ini_set和其他对象,然后调用session_start()
contextBridge
因此您确实要在调用ini_set和session_set_cookie_params等之后开始会话
答案 1 :(得分:0)
您应该加载以下代码行,而不是使用session_start();
来加载application/config/autoload.php
文件中提供的会话库codeigniter:
$autoload['libraries'] = array('session');
或者,如果您想仅从Dashboard
控制器加载库,则可以通过$this->load->library('session');
加载库,您可以将其放入构造函数中以便能够在孔中使用它控制器,或以特定方法添加。
答案 2 :(得分:0)
我刚刚通过codeigniter 3.11.1更新了会话redis驱动程序文件:“ system / libraries / Session / drivers / Session_redis_driver.php”: new driver file 并且此错误已消失
在application / config / config.php文件中,请接下来输入:
$config['sess_driver'] = 'redis';
$config['sess_save_path'] = 'your-redis-instance:port'
$config['sess_match_ip'] = FALSE;
$config['sess_regenerate_destroy'] = FALSE;
到目前为止有效。