我在codeigniter中的url路由中遇到了一些问题。我的登录控制器加载登录视图文件以获取用户输入,我使用的是ajax登录,只返回base_url。我在routes.php中使用另一个控制器而不是登录控制器,因此ajax返回无法将我重定向到管理仪表板。 在我的登录控制器中,索引功能是:
public function index() {
if ($this->session->userdata('admin_login') == 1)
redirect(base_url() . 'index.php?admin/dashboard', 'refresh');
if ($this->session->userdata('teacher_login') == 1)
redirect(base_url() . 'index.php?teacher/dashboard', 'refresh');
if ($this->session->userdata('student_login') == 1)
redirect(base_url() . 'index.php?student/dashboard', 'refresh');
if ($this->session->userdata('parent_login') == 1)
redirect(base_url() . 'index.php?parents/dashboard', 'refresh');
$this->load->view('backend/login');
}
这里我正在使用会话检查管理员和其他用户的凭据,以将其重定向到他们的特定仪表板。
和我的login.php视图文件我正在尝试使用它:
<?php
$data['page'] = 'login';
$this->session->set_userdata($data);
?>
然后在routes.php中我试图让seeion varable重定向右控制器。
$CI =& get_instance();
if( $CI->session->userdata('page') ){
redirect(base_url().'login/');
}
$route['default_controller'] = 'Frontend';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
我不知道为什么它不像我预期的那样工作。 请告诉我应该怎么做。 任何帮助将非常感谢。 提前谢谢。
答案 0 :(得分:1)
使用以下编码
$config['enable_hooks'] = TRUE;
在钩子文件夹
中创建一个文件(check_session.php)class Check_Session extends CI_Controller{
function CheckSession(){
if( $this->session->userdata('page') ){
redirect(base_url().'login/');
}
}
}
并在config文件夹中的hook.php中应用以下编码
$hook['pre_controller'] = array(
'class' => 'Check_Session',
'function' => 'CheckSession',
'filename' => 'check_session.php',
'filepath' => 'hooks',
'params' => ''
);
如果您有任何疑问,请随意询问....