1

次のphp検証が正しくコーディングされているかどうか知りたいのですが。それは機能しますが、もっと良い方法があるかどうか知りたいです。

if(isset($_POST['account_type']) && $_POST['account_type']==2){

if ((strlen(utf8_decode($this->request->post['cnpj'])) < 3) || (strlen(utf8_decode($this->request->post['cnpj'])) > 32)) {
            $this->error['cnpj'] = $this->language->get('error_cnpj');
        }   
}

法人アカウントを申請している顧客にのみ表示される非表示の必須フィールドがあるため、このように必要です。ラジオボタンをクリックすると、フィールドが表示されます。したがって、顧客が値= 2の小売業者アカウントのラジオボタンをクリックしたときにのみ、そのフィールド[cnpj]を検証する必要があります。

どうもありがとう。

マーヴィンM

4

1 に答える 1

1

以下のコード行のようにコードを実行できます。

if($_POST['account_type']==2 && $this->formValidation()){

       // Do your next process what you want to do if all set

}else{

     return $this->error;

}

//フォーム検証用の関数

function formValidation(){

if ((strlen(utf8_decode($this->request->post['cnpj'])) < 3) || (strlen(utf8_decode($this->request->post['cnpj'])) > 32)) {
            $this->error['cnpj'] = $this->language->get('error_cnpj');
        }   

}

これは、サーバー側ですべてのフォーム検証を行うためのより悪い方法になると思います。また、ほとんどのMVC構造はこの方法に従います。

于 2012-04-26T05:10:22.817 に答える