I used Codeigniter's built-in form validation library to validate a email input field.
This is my validation rule:
$this->form_validation->set_rules('email', '<b>email</b>', 'trim|htmlspecialchars|required|valid_email');
When using above validation rule everything is worked the way I espected.
For example:
- If input field empty it shows: email is required.
- If user input not a valid email, it shows: email is not valid.
Then I added custom form validation rule by adding callback function.
This is my modified validation rule:
$this->form_validation->set_rules('email', '<b>email</b>', 'trim|htmlspecialchars|required|valid_email|callback_mail_check');
And, This is my callback function:
public function mail_check() {
if (!$this->users_model->get_user_by_email_address($this->input->post('email', TRUE))) {
$this->form_validation->set_message('mail_check', 'Your <b>email</b> could not be found.');
return FALSE;
} else {
return TRUE;
}
}
Now when I submit form without filling email field or submit with invalid email, its always out put custom callback function's validation message(Your email could not be found.).
But its not the way I wanted.
I want to first validate email field for empty values, then for valid email, after that callback_function.