HTMLフォームへのデータの未入力や未選択を確認するためには、strlen()関数やisset()関数を使います。未入力や未選択の場合にどのようなデータが渡されるかは、フォーム部品によって異なります。それぞれの部品の特性に応じて、2つの関数を使い分けます。テキストボックスのように、未入力の場合は長さ=0の文字列が渡される場合はstrlen()関数で確認できます。リストボックスのように、変数未定義の状態で渡される場合にはisset()関数が有効です。
未入力/未選択のままで「送信」ボタンをクリックすると、警告が表示されます。
<?php header("Content-type: text/html; charset=utf-8"); if(isset($_POST["btnExec"])){ //名前の未入力を確認 if(strlen($_POST["inputdata"]) == 0){ echo "名前が入力されていません!<br>"; $errflg = TRUE; } //好きなチームの未入力を確認 if(!isset($_POST["seldata"])){ echo "好きなチームが選択されていません!<br>"; $errflg = TRUE; } //入力エラーがあった場合 if($errflg){ echo "<br><b style=\"color:#ff0000\">データを再入力してください</b><br>"; echo "<br><br>"; } } ?> <!DOCTYPE HTML> <html lang="ja-JP"> <head> <meta charset="UTF-8"> <title></title> </head> <body> あなたの名前と好きなチームを選択して「送信」ボタンをクリックしてください。 <form action="<?=$_SERVER["PHP_SELF"]?>" method="POST"> 名前:<br> <input type="text" size="40" name="inputdata"><br> <br> 好きなチーム:<br> <select size="5" name="seldata"> <option value="ブラジル">ブラジル</option> <option value="イタリア">イタリア</option> <option value="アルゼンチン">アルゼンチン</option> <option value="フランス">フランス</option> <option value="イングランド">イングランド</option> <option value="オランダ">オランダ</option> </select> <input type="submit" name="btnExec" value="送信"> </form> </body> </html>