验证数据,登录系统codeigniter

时间:2017-04-03 17:00:51

标签: php mysql codeigniter fetch

我要验证"用户名" &安培; "密码"

这是我与用户的表格:

enter image description here

这里是用户:

enter image description here

登录系统必须"分类" ADMIN用户(tipo = 0)和简单用户(tipo = 1)的用户。注意:ADMIN和简单用户在登录后具有不同的屏幕

我必须验证访问的人是活跃的成员(我遇到了问题)

ESTATUS = 1是活跃用户

ESTATUS = 0不是活跃用户

我不知道如果一个人没有写任何东西我应该怎么验证他只是点击"登录"按钮(我不应该连接到服务器来验证它)

这是我的代码,它运行正常..它验证用户是ADMIN还是简单用户,以及登录系统中写入的信息是否与数据库中的人员相对应。 但我不知道该如何做" ESTATUS"验证以及如何在不连接服务器的情况下检查空白字段:/

<?php

        Class Login extends CI_Controller{


        public function index(){


           $this->load->view('login_form');


        }

        public function do_login()
        {

            if(isset($_POST['login'])){

                $user=$this->input->post('usuario', true);
                $pass=$this->input->post('contrasena', true);
                $cek = $this->m_login->proceso_login($user,$pass);
                $hasil=count($cek);

                if($hasil > 0){

                    $pelogin =$this->db->get_where('usuarios',array('usuario' => $user, 'contrasena' => $pass))->row();

                    if($pelogin ->tipo == 0){
                        redirect('login/admin');

                    }

                    else{
                    redirect('login/usuario');

                    }



                }
                    redirect('login/index');


            }

    }

1 个答案:

答案 0 :(得分:0)

在将数据插入数据库之前,您需要执行一些validation

 public function do_login()
        {
         // load the form_validation library
         $this->load->library('form_validation');

         $this->form_validation->set_rules('Your_username_field_name', 'Username', 'trim|required|min_length[3]|alpha_numeric');
         $this->form_validation->set_rules('Your_password_field_name', 'Password', 'trim|required|min_length[6]');

           // if there is errors
         if ($this->form_validation->run() == FALSE) { 
            // this will load your form with the errors
               $this->load->view('Login_main');      
         } else {
           // if no errors we will hit the database
            $user=$this->input->post('usuario', true);
            $pass=$this->input->post('contrasena', true);
            $cek = $this->m_login->proceso_login($user,$pass);
            $hasil=count($cek);

            if($hasil > 0){

                $pelogin =$this->db->get_where('usuarios',array('usuario' => $user, 'contrasena' => $pass))->row();

                if($pelogin ->tipo == 0){
                    redirect('login/admin');
                }

                else{
                    redirect('login/usuario');
                }
            }
            redirect('login/index');
        }
    }
在您的Login_main视图中

然后,您可以添加此行代码以回显错误,以查看错误:

<?php echo validation_errors(); ?>