gox
gox

Reputation: 51

Can't display Codeigniter validation error

Don't get this. I have to validate basic form. Im using CI form_validation library, form validation rules are set just to "required"...if form validation fails it just need to echo validation error in login form. Im using by default <?php echo validation_errors(); ?> Helper is autoloaded. Form functionality is OK it works how it should, only problem is that framework dont display error messagges if dont fill required fields?

login_form.php - VIEW

<?php echo validation_errors(); ?> 

<?php echo form_input('email' , 'email'); ?> <br>
<?php echo form_input('password' , 'password'); ?> <br>
<?php echo form_submit('submit' , 'submit'); ?>

login.php - CONTROLLER

<?php
Class Login extends CI_Controller {

  function index () {
    $data ['content'] = "login_form";
    $this->load->view("template", $data);
  }

  function validate() {
    $this->load->library("form_validation");


    $this->form_validation->set_rules('email' , 'email' , 'trim|xss_clean|required');
    $this->form_validation->set_rules('password' , 'password' , 'md5|trim|required');

    if( $this->form_validation->run() == FALSE) {
        redirect('login/index');
    }
    else {
        redirect("user/profile");
    }
  }

}
?>

Upvotes: 0

Views: 1396

Answers (2)

ChandraBhanu
ChandraBhanu

Reputation: 46

if( $this->form_validation->run() == FALSE) {
    redirect('login/index');
}

Don't redirect, else error will not be available. Instead of that keep

if( $this->form_validation->run() == FALSE) {
    $data ['content'] = "login_form";
    $this->load->view("template", $data);
}    

Check the following link for more details:
Form Validation : CodeIgniter User Guide

Upvotes: 0

Farhan
Farhan

Reputation: 1483

Why don't you use code in controller like this hope will help you just set form action to login.php login.php - CONTROLLER

function index () {
    $data ['content'] = "login_form";
    $this->load->library("form_validation");
    $this->form_validation->set_rules('email' , 'email' , 'trim|xss_clean|required');
    $this->form_validation->set_rules('password' , 'password' , 'md5|trim|required');
    if( $this->form_validation->run() == FALSE) {
          $this->load->view("template", $data);
    }
    else {
        redirect("user/profile");
     }  
}

login_form.php - VIEW

<?php echo validation_errors(); ?> 

<?php echo form_input('email' , 'email'); ?> <br>
<?php echo form_input('password' , 'password'); ?> <br>
<?php echo form_submit('submit' , 'submit'); ?>

Upvotes: 1

Related Questions