フォームのバリデーションでswitch文を使用してメールとパスワードチェックをしています。
blank_checkメソッドで未入力をチェックします。
フォームを未入力で送信したら、未入力と、パスワードの形式のエラーが出てきてしまいます。
未入力の場合はパスワードの形式をチェックせずに未入力のエラーだけを返したいのですが、
blank_checkでreturnしているのですが、処理が終わりません。
アドバイスいただけたら嬉しいです
php
1class Validation 2{ 3 4private function blank_check($value='', $colName='') 5 { 6 if($value === ''){ 7 $this->error[] = $colName . 'は入力必須です。'; 8 return true; 9 } 10 } 11 12public function check_type($value,$type) 13 { 14 switch($type){ 15 16 case "メールアドレス": 17 $this->blank_check($value,'メールアドレス'); 18 if(!filter_var($value,FILTER_VALIDATE_EMAIL)){ 19 $this->error[] = 'メールアドレスは正しい形式で入力してください。'; 20 } 21 break; 22 23 case "パスワード": 24 $this->blank_check($value,'パスワード'); 25 if(!preg_match('/\A(?=.*?[a-z])(?=.*?\d)[a-z\d]{6,10}+\z/i',$value)){ 26 $this->error[] = 'パスワードは半角英数字をそれぞれ1種類以上含む5文字以上10文字以下で入力してください。'; 27 } 28 break; 29 30 default: 31 break; 32 } 33}
php
1if(filter_input(INPUT_SERVER,'REQUEST_METHOD') === 'POST'){ 2 $mail = filter_input(INPUT_POST, 'mail'); 3 $pass = filter_input(INPUT_POST, 'pass'); 4 5 $vdt = new Validation; 6 $vdt->check_type($mail,'メールアドレス'); 7 $vdt->check_type($pass,'パスワード'); 8 $error = $vdt->get_error(); 9}
回答1件
あなたの回答
tips
プレビュー