2017-10-16 21 views
0

私のcodeigniterフォーム検証について質問があります。私は名前の入力フォームを検証しようとするので、ユーザが">?<*&%^$"のようなシンボルを使用するとエラーが発生します。ここに私のコードは次のとおりです。コールバックのpreg_matchでフォームの検証が機能しない

マイルール:

$this->load->library('form_validation'); 
$this->form_validation->set_rules('full_name', 'Name', 'trim|required|callback_name_check', 
      array(

       'name_check' => '%s should not using symbols' 
      ) 
    ); 

これは私のコールバック関数です(私は私が見た最後の例からこれを変更しようとしたので、私は問題はここだと思った)

public function password_check($str) 
    { 
     if (preg_match('#[<>?&%$#@]#', $str)) { 
     return TRUE; 
     } 
     return FALSE; 
    } 

私は別のStackOverflowの回答から/を区切り記号(このように - >[/<>?&%$#@/])で使用しようとしましたが、それでも動作しません。私はあなたの助けの先生に感謝します:)

答えて

0

検証が

$this->load->library('form_validation'); 
$this->form_validation->set_rules('full_name', 'Name', 'trim|required|callback_name_check'); 

インサイドは

public function name_check($str) 
{ 
    if (preg_match('#[<>?&%$#@]#', $str)) { 
    { 
     return TRUE; 
    } 
    else 
    { 
     #adding new validation error should be 
     $this->form_validation->set_message('full_name', '%s should not using symbols'); # input field name should come to first 
     return FALSE; 
    } 
} 

機能をコールバックする必要があります:REGEXを検証しませんでしたあなたは投稿しました

+0

これに関する更新は何ですか? –

関連する問題