codeigniter set_rules позволяет больше символов - PullRequest
0 голосов
/ 25 сентября 2011

Я строю систему регистрации, и у меня возникла проблема.

Я хочу разрешить точки (.) В моем имени пользователя, но я не могу найти способ сделать это ...

Это всего лишь пример, который я могу использовать для функций заказа моего приложения.

Это то, что я получил до сих пор:

    $this->load->library('form_validation');

    $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]|xss_clean');

Спасибо

1 Ответ

3 голосов
/ 25 сентября 2011

Вам нужно будет создать свою собственную пользовательскую функцию в вашем контроллере:

class Form extends CI_Controller
{

    function index()
    {    
        $this->load->library('form_validation');

        // 'callback_valid_username' will call your controller method `valid_username`
        $this->form_validation->set_rules('username', 'Username', 'trim|required|callback_valid_username|min_length[6]|xss_clean');

        if ($this->form_validation->run() == FALSE)
        {
            // Validation failed
        }
        else
        {
            // Validation passed
        }
    }

    function valid_username($str)
    {
        if ( ! preg_match('/^[a-zA-Z0-9.]*$/', $str) )
        {
            // Set the error message:
            $this->form_validation->set_message('valid_username', 'The %s field should contain only letters, numbers or periods');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
}

Для получения дополнительной информации о пользовательской функции проверки прочитайте документы:

http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...