Jojo, вы, должно быть, пропустили руководство пользователя, оно называется callback
, а вот документация .
Пример:
<?php
class Form extends CI_Controller {
public function index()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|is_unique[users.email]');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('myform');
}
else
{
$this->load->view('formsuccess');
}
}
public function username_check($str)
{
if ($str == 'test')
{
$this->form_validation->set_message('username_check', 'The %s field can not be the word "test"');
return FALSE;
}
else
{
return TRUE;
}
}
}
?>
По сути, создайте проверку с именем callback_check_bad_words
и соответствующую функцию в вашем контроллере с именем check_bad_words($value)
.Возврат логического значения в результате (как результат возвращается к проверке).
Поскольку вы можете только передать обратно логическое значение, вам нужно либо использовать глобальную переменную, либо запустить «санитарную обработку» вашего слова.позже вам это не понадобится при проверке, ЕСЛИ ВЫ не захотите остановить его от отправки.
Если вы хотите очистить ввод от плохих слов, просто сделайте это, не проверяйте его.