0

我正在尝试在 codeigniter 中设置 Session。当一个人尝试使用电子邮件 ID 和密码登录时。

1)使用电子邮件 ID 找到他/她的角色。然后在会话中返回该结果并重定向到相应的链接。我在下面输入的代码。你能解决这个问题吗?

控制器

public function login_validation() {
        $this -> load -> library('form_validation');
        $this -> form_validation -> set_rules('email', 'Email', 'required|trim');
        $this -> form_validation -> set_rules('password', 'Password', 'required ');

        if ($this -> form_validation -> run()) {

            $this -> load -> model('model_database');
            $sessiondata['var_userrole'] = $this -> model_database -> login_session();

            $this -> session -> set_userdata($sessiondata);
            if ($var_userrole == admin) {

                redirect('welcome/admin');

            } else if ($var_userrole == staff) {

                redirect('welcome/staff');

            } else if ($var_userrole == student) {

                redirect('welcome/student');

            } else {

                redirect('welcome/login');

            }

模型

public function login_session() {
    $email = $this -> input -> post('email');
    $login_id = $this -> db -> query("SELECT var_userrole FROM tbl_login where var_email = '" . $email . "'");
    return  $login_id -> row_array();
}
4

1 回答 1

0

嗨,首先 $var_userrole 没有在您检查 if 语句的任何地方定义

控制器

public function login_validation() {
        $this -> load -> library('form_validation');
        $this -> form_validation -> set_rules('email', 'Email', 'required|trim');
        $this -> form_validation -> set_rules('password', 'Password', 'required ');

        if ($this -> form_validation -> run()) {

            $this -> load -> model('model_database');
            $var_userrole = $this -> model_database -> login_session();// was undefined 
            $sessiondata['var_userrole'] = $var_userrole

            $this -> session -> set_userdata($sessiondata);
            if ($var_userrole == admin) {

                redirect('welcome/admin');

            } else if ($var_userrole == staff) {

                redirect('welcome/staff');

            } else if ($var_userrole == student) {

                redirect('welcome/student');

            } else {

                redirect('welcome/login');

            }

模型

public function login_session() {
    $email = $this -> input -> post('email');
    $login_id = $this -> db -> query("SELECT var_userrole FROM tbl_login where var_email = '" . $email . "'");
      //$row =  $login_id -> row() // as object return $row->var_userrole;
      $row =  $login_id -> row_array();
    return $row['var_userrole']
}

好吧,如果您在此之前正在为 auth 开发新的东西,请检查 CI 中的一些 auth 系统,例如 ion_auth 有组,您可以管理并检查用户属于哪个组Ion auth

于 2013-05-01T11:59:38.383 回答