簡體   English   中英

Codeigniter表單驗證規則順序

[英]Codeigniter form validation rules order

我在控制器上設置了這個規則

public function checkLogin()
    {
        $this->load->helper('form');
        $this->load->library('form_validation');

        $this->form_validation->set_rules(
            'username', 
            'nombre de usuario', 
            'required',
            array('required' => 'Debes introducir un  %s.')
        );
        $this->form_validation->set_rules(
            'pass',
            'contraseña',
            'required',
            array('required' => 'Debes introducir una  %s.')
        );
        $this->form_validation->set_rules(
            'bad_login',
            'login',
            'callback_checkCredentials'
        );

        if ($this->form_validation->run() == FALSE) {
            $this->load->view('header');
            $this->load->view('login/login_view');
            $this->load->view('footer');
        } else {
            $this->session->set_userdata('logged',true);
            $this->session->set_userdata('user',$this->input->post('username'));
            redirect('main');
        }
    }

    public function checkCredentials(){
        if($this->input->post('username') == $this->user &&  $this->input->post('pass') == $this->pass){

            return true;
        }else{
            $this->form_validation->set_message('checkCredentials', 'El usuario/contraseña introducido no es correcto');
            return false;
        }
    }

和觀點

<div class="container">
    <div class="col-md-4">
        <?php $this->load->helper('form'); ?>
        <?php echo form_open('checkLogin'); ?>
        <?php echo form_error('bad_login'); ?>
        <?php echo form_error('username'); ?>
        <div class="form-group">
            <?php echo form_label('Usuario:'); ?>
            <?php echo form_input(array('id' => 'username', 'name' => 'username', 'class'=>'form-control', 'placeholder'=>"Nombre de usuario")); ?>
        </div>
        <?php echo form_error('pass'); ?>
        <div class="form-group">
            <?php echo form_label('Contraseña:'); ?>
            <?php echo form_password(array('id' => 'pass', 'name' => 'pass', 'class'=>'form-control', 'placeholder'=>"Contraseña")); ?>
        </div>
        <?php echo form_submit(array('id' => 'submit', 'value' => 'Enviar', 'class'=>'btn btn-primary')); ?>
        <?php echo form_close(); ?>
    </div>
</div>

它是一個登錄表單,用戶輸入並輸入另一個密碼,但如果通行證或用戶名為空,則無需檢查通行證和用戶名是否正確(並顯示消息錯誤),我不是確定如何做到這一點

你可以這樣做:

$username = trim($this->input->post('usename'));
$password = trim($this->input->post('password'));
if(!empty($username) && !empty($password))
{
    // do you validation
}
else
{
    // maybe show error message
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM