【问题标题】:Is it possible to use session in codeigniter routes.php file?是否可以在 codeigniter routes.php 文件中使用会话?
【发布时间】:2016-01-07 00:38:09
【问题描述】:

我在 codeigniter 中的 url 路由中遇到了一些问题。我有我的登录控制器,它加载登录视图文件以获取用户输入,我正在使用仅返回 base_url 的 ajax 登录。我在我的 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 中,我试图让 seesion 变量重定向到正确的控制器。

    $CI =& get_instance();
     if( $CI->session->userdata('page') ){
     redirect(base_url().'login/');
    }

    $route['default_controller'] =   'Frontend';
    $route['404_override'] = '';
    $route['translate_uri_dashes'] = FALSE;

我不知道为什么它没有按我的预期工作。 请告诉我我应该怎么做。 任何帮助将不胜感激。 提前致谢。

【问题讨论】:

  • 我可以假设 codeigniter routes.php 文件中的会话是不可能的吗? @Bugfixer

标签: php ajax codeigniter session


【解决方案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/');
    }
        }
}

并且在配置文件夹中的 hook.php 中应用下面的编码

$hook['pre_controller']     = array(
                                'class'    => 'Check_Session',
                                'function' => 'CheckSession',
                                'filename' => 'check_session.php',
                                'filepath' => 'hooks',
                                'params'   => ''
                             );

如果您有任何疑问,请随时询问......

【讨论】:

  • 我试过了,但它显示 pagination.php 错误。谢谢你的回答。
  • 好的,但我尝试这种类型的编码工作正常。分享那个错误
猜你喜欢
  • 2014-01-17
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
相关资源
最近更新 更多