受け取ったデータをデータベースに保存する場合、そのデータ長が長すぎて適切であるとは限りません。また、ホームページアドレスを入力する欄に対して、ユーザが間違えてメールアドレスを入力してしまうなどのミスも考えられます。データの整合性をより高めるためには、受け取ったデータを処理する前に、このような確認が欠かせません。
この例では、テキストボックスから入力されたデータの妥当性を調べるため、データ長の上限と先頭文字列を確認しています。実際のデータの妥当性の確認では、それが正しいデータであるか、多くの要件で確認する必要があります。フォームから受け取ったデータは通常の変数と同じなので、各種の文字列関数や正規表現などを組み合わせて、様々な確認ができます。
http://を入れない文字列を入力して「送信」ボタンをクリックすると、警告が表示されます。
<?php header("Content-type: text/html; charset=utf-8"); if(isset($_POST["btnExec"])){ //受け取ったデータの長さを確認 if(strlen($_POST["inputdata"]) > 30){ echo "入力されたホームページアドレスが長すぎます!<br><br>"; } if(!preg_match("/^http:\/\//", $_POST["inputdata"])){ echo "ホームページはhttp://から入力してください!<br><br>"; } } ?> <!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> ホームページアドレスを入力して「送信」ボタンをクリックしてください。 <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST"> <input type="text" size="90" name="inputdata"> <input type="submit" name="btnExec" value="送信"> </form> </body> </html>