使用codeigniter中的挂钩检查会话?
我必须检查每个控制器中的会话。若用户已注销,则重定向至登录页面。我如何使用codeigniter中的钩子来实现它,这样我就不必在每个控制器中编写会话条件。帮帮我 我在使用codeigniter中的挂钩检查会话?,codeigniter,Codeigniter,我必须检查每个控制器中的会话。若用户已注销,则重定向至登录页面。我如何使用codeigniter中的钩子来实现它,这样我就不必在每个控制器中编写会话条件。帮帮我 我在application/hooks/Authenticate.php function __construct() { $this->CI =& get_instance(); } function loginCheck() { if($this->session->userdata('
application/hooks/Authenticate.php
function __construct()
{
$this->CI =& get_instance();
}
function loginCheck()
{
if($this->session->userdata('role_id')=='' && $this->session->userdata('user_id')=='' && $this->session->userdata('client_id')==''){
redirect('login');
}
}
下面是application/config/hooks.php中的代码
function __construct()
{
$this->CI =& get_instance();
}
function loginCheck()
{
if($this->session->userdata('role_id')=='' && $this->session->userdata('user_id')=='' && $this->session->userdata('client_id')==''){
redirect('login');
}
}
$hook['pre_controller'][] = array(
'class' => 'Authenticate',
'function' => 'loginCheck',
'filename' => 'authenticate.php',
'filepath' => 'hooks/authenticate',
'params' => array()
);
当我注销并按下浏览器返回按钮时,它再次将我带到登录部分。会话似乎没有被正确地破坏
在应用程序/核心中创建AppController扩展CI_控制器/
在配置中设置“my_class_prefix”(?)=“应用程序”
从AppController扩展所有应用程序控制器(关闭以供公共访问)
AppController检查会话的In _construct()
你可以通过做一个函数来检查。。。
检查会话是否未设置,并且仅在登录时重定向…否则在主页/仪表板上重定向usr
function check_user_login()
{
if(! $this->session->userdata('logged_in'))
{
redirect('login');
}
if($this->session->userdata('user_active') == false)
{
redirect('your page name');
}
}
你现在有什么代码?你试过什么?什么不起作用了?谢谢你的帮助。但是,我不想对核心文件做任何修改。我们不能使用钩子吗?“当我注销并按browser back按钮时,它会再次将我带到登录部分。”按F5?此时唯一的问题是,如果我们升级框架版本会怎么样?核心文件夹内控制器中的此自定义是否有效?您只需要从旧版本复制控制器、模型和视图文件夹。CI 3.0中的配置文件有更改。将旧配置数据集成到新配置文件中。