我正在使用 codeigniter 开发一个 Web 应用程序,但由于与它相关的错误,我更喜欢回避使用 codeigniter 方式处理会话。因此,我使用的是本机 php 会话处理。我遇到的问题是,从默认控制器启动的会话似乎不会在其他控制器中继续,这让我很头疼。在我的默认控制器和其他控制器中,在任何其他类似这样的代码之前,我已经开始或继续会话方式:
<?php
@session_start();
那么我该怎么做才能使会话在其他控制器中继续,而不是被限制在默认控制器中?
我正在使用 codeigniter 开发一个 Web 应用程序,但由于与它相关的错误,我更喜欢回避使用 codeigniter 方式处理会话。因此,我使用的是本机 php 会话处理。我遇到的问题是,从默认控制器启动的会话似乎不会在其他控制器中继续,这让我很头疼。在我的默认控制器和其他控制器中,在任何其他类似这样的代码之前,我已经开始或继续会话方式:
<?php
@session_start();
那么我该怎么做才能使会话在其他控制器中继续,而不是被限制在默认控制器中?
在核心文件夹中创建一个 MY_Controller.php,并在其构造中使用会话开始调用 - 将其设置为扩展 CI_Controller 并使您的其他控制器改为扩展您新创建的 MY_Controller。
就像是:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
@session_start();
}
}
/* End of file MY_Controller.php */
/* Location: ./application/core/MY_Controller.php */
由于所有内容都是controllers
通过主index.php
文件加载的,您可以在其中启动会话