Php ini_set():会话处于活动状态。无法更改会话模块';s此时在codiegniter中的ini设置

Php ini_set():会话处于活动状态。无法更改会话模块';s此时在codiegniter中的ini设置,php,codeigniter,session,Php,Codeigniter,Session,我已检查结果,但无法解决我的错误。 我只是使用了session_start,它给出了这个警告消息 ini_set():会话处于活动状态。您不能更改会话模块的 此时的ini设置 下面是我的代码- $sess_array = array( 'id' => $row->empid, 'username' => $row->emp_name, 'lo

我已检查结果,但无法解决我的错误。
我只是使用了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'];  
  }  
}  

虽然问了同样的问题,但我没有得到这个问题的正确答案。请任何人解决该查询。

而不是使用
会话_start()
您应该加载codeigniter在
应用程序/config/autoload.php
文件中为您提供的会话库,转到以下行:

$autoload['libraries'] = array('session');

或者,如果只想从
仪表板
控制器加载库,可以通过
$this->load->library('session')加载库,您可以将其放入构造函数中,以便能够在孔控制器内使用它,或将其添加到特定方法中。

这对我来说确实有效,基本上是先检查会话,然后如果未初始化,则调用ini\u set和其他,然后调用session\u start()


因此,在调用ini_set和session_set_cookie_params等后,您确实启动了会话。我刚刚更新了我的会话redis驱动程序文件:“system/libraries/session/drivers/session_redis_driver.php”,由codeigniter 3.11.1提供: 这个错误已经消失了

在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;

到目前为止,它仍然有效。

删除
session_start()
来自
dashboard.php
。当项目通过URL启动时,Codeignitor本身启动了会话。(通过配置文件)然后它通过if条件,其中会话正在检查,它进入else部分该代码中没有
else
part抱歉,我忘了提到else部分。但这段代码中还有另外一部分,我已经完成了,在autoload中加载session,当我从dashboard.php中删除session_start时,如果这个部分不起作用,它将进入else部分。不验证会话userdata$autoload['libraries']=array('database','email','pagination','javascript','encrypt','session');如果确定要在会话中设置数据,请在直接设置后尝试转储
$this->session->userdata('logged_in')
。是的,我已经转储了它,并且所有值都设置正确。我不知道问题出在哪里,这是我两年开发生涯中的第一次。试着把它也放在你的仪表板控制器中,然后在你的if语句中尝试
has_userdata
$config['sess_driver'] = 'redis';
$config['sess_save_path'] = 'your-redis-instance:port'
$config['sess_match_ip'] = FALSE;
$config['sess_regenerate_destroy'] = FALSE;