2011-09-25 10 views
0

私は登録システムを構築しており、問題が発生しました。 ...codeigniter set_rulesは複数の文字を許可します

私はドット(。)私のユーザー名に許可したいが、私はこれを行うための方法を見つけるカント

これで私も私のアプリのための機能に使用する場合があり、単に例。

これは私がこれまでに得たものです:あなたは、あなたのコントローラで、独自のカスタム関数を作成する必要があります

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

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

おかげ

答えて

3

:詳細については

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

+1

この方法を複数のコントローラで使用する必要がある場合は、フォーム検証クラスを拡張できます。 – birderic