phpでの正規表現によるバリデートの練習

php

フォームで入力された値を正規表現でチェックしてチェックした値が正しければ送信ボタンを表示するような練習

あくまでも練習なので細かい正規表現についてはその他サイトにまかせる

実行結果

varidate.txt

最初にチェックするパターンを変数に保持

最初にチェックするパターンを変数に保持しておく。あとあとチェックするときに直接記述すると長くなるので・・・


$MAIL="/^[a-zA-Z0-9\-_.]+\@([a-z0-9\-_]+\.)+[a-z0-9]+$/";
$TEL="/^[0-9]{2,3}\-[0-9]{3,4}\-[0-9]{3,4}$/";

POSTデータをチェックしてカウントをとる

フォームから入力されたデータ・・・今回は電話番号を”tel”としてアドレスを”mail”をしてpostで取得する。

入力されていて尚且つ、preg_match関数の正規表現で正しかった場合に限り、$counterに+1を追加していく

$counter=0;   //正解だった場合のカウンター変数
        //
 if(empty($_POST["tel"])){      //データが空だった場合は注意する
         $tel="電話番号を入力してください";
    }elseif(preg_match($TEL,$_POST["tel"])){  //データを正規表現でチェック
    
    //チェックが大丈夫であればpostデータを取得してカウンターを増やす
         $tel=$_POST["tel"];
         $counter=$counter+1;
      }else{
          $tel="書式が間違ってます";
       }

上記のように電話番号と同じくアドレスもチェックしていく

if(empty ($_POST["mail"])){
            $mail="メールアドレスを入力してください";
        }elseif(preg_match($MAIL,$_POST["mail"])){
           $mail=$_POST["mail"];
           $counter=$counter+1;
        }else{
            $mail="書式が間違ってます。";
        }

カウンター変数によるチェック

今回はアドレスと電話番号だけの2つだけでしたが、チェックしたい要素が例えば6つあった場合にカウンター変数$counterの値が6つになっていれば全てのデータが正しいと判断できるので送信ボタンを表示させることができる!それ以外だったら前に戻るボタンを表示するなどの処理を書けばよろしいかと!


       

ここが表示されたということは2つの入力形式が正しいということです。

いくつか拝見した正規表現についてのサイト