POST送信されたデータをPHPで入力チェックする
以下のようなテキストボックスからPOST送信されたデータのチェック
QuickFormパッケージ使えばもっとコードが見やすくなるんだけど・・・。今回は使わない。
<html> <head></head> <body> <?php //POST送信されたデータを$data1へ $data1 =@$_POST["data1"]; $data2 ="data2"; $maxlen =10; //strlen()関数で未入力チェック。(データが未入力の場合true) if(!strlen($data1)){ echo "<p>(strlen)データが入力されていません。"; }else{ echo "<p>(strlen)入力された内容:".$data1; } //empty()関数で未入力チェック。(データが未入力または0の場合true) if(empty($data1)){ echo "<p>(empty)データが入力されていません。"; }else{ echo "<p>(empty)入力された内容:".$data1; } //strlen()関数でバイト数チェック。maxlen(最大桁数を超えた)ならfalse if(strlen($data1) > $maxlen){ echo "<p>$maxlen バイト以内で入力してください。"; }else{ echo "<p>$maxlen バイト以内です。:".$data1; } //getType()関数でデータ型取得 echo "<p>$data1 のデータ型:".getType($data1); //is_numeric()関数で数値型判定 if(is_numeric($data1)){ echo "<p>$data1 は数値です。"; }else{ echo "<p>$data1 は数値ではありません。"; } //stristr(data1,data2) 関数で文字列比較。data1にdata2が含まれているか。(大文字区別無し) if(!stristr($data1,$data2)){ echo "<P>(stristr) $data1 に $data2 は含まれていません"; }else{ echo "<P>(stristr) $data1 に$data2 は含まれています"; } //stristr(data1,data2) 関数で文字列比較。data1にdata2が含まれているか。(大文字区別有り) if(!strstr($data1,$data2)){ echo "<P>(strstr) $data1 に $data2 は含まれていません"; }else{ echo "<P>(strstr) $data1 に$data2 は含まれています"; } ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td><input type="text" name="data1"> </td> <td><input type="submit" value="送信" name="sub1"> </td> </tr> </table> </form> </body> </html>
以下のようなプルダウンリストから受け取ったデータの日付チェック
<html> <head></head> <body> <?php //POST送信された日付データを受け取る $yyyy =@$_POST["yyyy"]; $mm =@$_POST["mm"]; $dd =@$_POST["dd"]; if(checkdate($mm,$dd,$yyyy)){ echo "<p> $yyyy/$mm/$dd は正しい日付です"; }else{ echo "<p>$yyyy/$mm/$dd は正しい日付ではありません"; } ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td><select name="yyyy"> <?php //年 for($i =2012; $i <= 2020; $i++){ echo "<option>$i"; } echo "</select>年"; //月 echo "<select name =\"mm\">"; for($i =1; $i <= 12; $i++){ echo "<option> $i"; } echo "</select>月"; echo "<select name =\"dd\">"; for($i =1; $i <= 31; $i++){ echo "<option> $i"; } echo "</select>日"; ?> </td> <td><input type="submit" value="送信" name="sub1"></td> </tr> </table> </form> </body> </html>