Во-первых, я бы хотел извиниться за мой плохой английский.
Предположим, у меня есть функция в контроллере, как это:
function confirm()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|exist[member.email]');
$this->form_validation->set_rules('secretKey','Secret Key', 'required|callback_secret_check');
$this->form_validation->set_message('exist',"Email don't exist");
$this->form_validation->set_message('secret_check','Invalid confirmation code');
if ($this->form_validation->run() == FALSE)
{
// if error, show form and the error msg
$this->view->full_render('user_confirm') ;
} else {
// if all ok
echo "success" ;
}
}
Короче говоря, эта функция используется для проверки электронной почты нового пользователя с помощью кода подтверждения. Так же, как мы нашли на любом сайте, который нуждается в регистрации. Я сделал эту функцию в случае, если какой-либо пользователь предпочитает отправлять свой код подтверждения напрямую, используя форму подтверждения, вместо того, чтобы использовать URL-адрес подтверждения (мы отправляем как URL-адрес подтверждения, так и код подтверждения на его электронную почту)
Только для вашей информации, правило "существовать" - это мое собственное правило, созданное путем расширения класса формы, чтобы проверить, действительно ли отправленное письмо действительно существует. Для правила "callback_secret_check" я создаю функцию обратного вызова (не расширяя класс проверки формы, как первое правило), чтобы проверить, является ли код подтверждения, предоставленный пользователем, действительным.
Теперь предположим, что у меня есть электронная почта пользователя "example@example.com" с кодом подтверждения "12345". Если он отправит «example@example.com» с кодом «22323», система выдаст сообщение об ошибке:
- неверный код подтверждения
Нет проблем с этим делом.
Но если кто-то отправит «this.is.not.exist@example.com» с любым кодом подтверждения, система выдаст сообщение об ошибке
- Электронная почта не существует
- Неверный код подтверждения
я хотел только
- Электронная почта не существует
без отображения «неверного кода подтверждения», потому что, если электронная почта даже не существует, я думаю, нам не нужно ничего рассказывать о коде подтверждения. Любая подсказка?
спасибо за вашу помощь.