フォームデータのチェック - まとめ
データが入力されたかどうかをチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>データが入力されたかどうかチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // ●strlen()関数でデータをチェックする if (!strlen($data1)) { print "<p>(strlen)データが入力されていません</p>\n"; } else { print "<p>(strlen)入力された内容:".$data1."</p>\n"; } // ●empty()関数でデータをチェックする if (empty($data1)) { print "<p>(empty)データが入力されていません</p>\n"; } else { print "<p>(empty)入力された内容:".$data1."</p>\n"; } // ●is_null()関数でデータをチェックする if (is_null($data1)) { print "<p>(is_null)データが入力されていません</p>\n"; } else { print "<p>(is_null)入力された内容:".$data1."</p>\n"; } // ●isset()関数でデータをチェックする if (isset($data1)) { print "<p>(isset)入力された内容:".$data1."</p>\n"; } else { print "<p>(isset)データが入力されていません</p>\n"; } ?> <form method="POST" action="<?php print $_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>
特定の文字列を含むかチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>特定の文字列を含むかチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // 探す文字列 $data2 = "PHP"; // ●大文字と小文字を区別せず入力データから文字列を探す if (!stristr($data1, $data2)) { print "<p>(stristr)$data1 に $data2 は含まれていません</p>\n"; } else { print "<p>(stristr)$data1 に $data2 は含まれています</p>\n"; } // ●大文字と小文字を区別して入力データから文字列を探す if (!strstr($data1, $data2)) { print "<p>(strstr)$data1 に $data2 は含まれていません</p>\n"; } else { print "<p>(strstr)$data1 に $data2 は含まれています</p>\n"; } ?> <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>
桁数をチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>桁数をチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // 最大バイト $maxlen = 10; // ●入力データのバイト数をチェックする if (strlen($data1) > $maxlen) { print "<p>$maxlen バイト以内で入力してください:".$data1."</p>\n"; } else { print "<p>$maxlen バイト以内です:".$data1."</p>\n"; } // ●エスケープを解除して入力データのバイト数をチェックする // 「magic_quotes_gpc」が「ON」ならエスケープを解除する if (get_magic_quotes_gpc()) { $data1 = stripslashes($data1); } if (strlen($data1) > $maxlen) { print "<p>$maxlen バイト以内で入力してください:".$data1."</p>\n"; } else { print "<p>$maxlen バイト以内です:".$data1."</p>\n"; } ?> <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>
数値かどうかをチェック
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>数値かどうかをチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // データの型を表示する print "<p>$data1 のデータ型:".gettype($data1)."</p>\n"; // 数値かどうかをチェックする if (is_numeric($data1)) { $data2 = $data1 * $data1; print "<p>$data1 * $data1 = ".$data2; } else { print "<p>数値を入力してください:".$data1; } // 数値かどうかをチェックする if (ctype_digit($data1)) { $data2 = $data1 * $data1; print "<p>$data1 * $data1 = ".$data2."</p>\n"; } else { print "<p>数値を入力してください:".$data1."</p>\n"; } ?> <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>
半角英数字のみかどうかをチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>半角数字のみかどうかチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // 半角数字だけか調べる正規表現 $pat = "^[0-9]+$"; // 半角数字のみかどうかチェックする if (ereg($pat, $data1)) { print "<p>$data1 は半角数字のみです</p>\n"; } else { print "<p>$data1 は半角数字だけではありません</p>\n"; } // 半角数字のみかどうかチェックする $pat = "[^0-9]"; if (ereg($pat, $data1)) { print "<p>$data1 には半角数字以外が含まれます</p>\n"; } else { print "<p>$data1 は半角数字のみです</p>\n"; } ?> <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>
大文字か小文字かチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>大文字か小文字かチェックする</title> </head> <body> <?php // データを受け取る $data1 = @$_POST["data1"]; // 大文字のみかどうかチェックする if (ctype_upper($data1)) { print "<p>$data1 は大文字のみです</p>\n"; } else { print "<p>$data1 は大文字だけではありません</p>\n"; } // 小文字のみかどうかチェックする if (ctype_lower($data1)) { print "<p>$data1 は小文字のみです</p>\n"; } else { print "<p>$data1 は小文字だけではありません</p>\n"; } ?> <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>
日付かどうかチェックする
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>日付かどうかチェックする</title> </head> <body> <?php // データを受け取る(年/月/日) $yyyy = @$_POST["yyyy"]; $mm = @$_POST["mm"]; $dd = @$_POST["dd"]; // 正しい日付かどうかチェックする if (checkdate($mm, $dd, $yyyy)) { print "<p>$yyyy/$mm/$dd は正しい日付です</p>\n"; } else { print "<p>$yyyy/$mm/$dd は正しい日付ではありません</p>\n"; } ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td> <?php // 年 echo "<select name=\"yyyy\">\n"; for ($i = 2002; $i <= 2020; $i++) { print "<option>$i</option>\n"; } print "</select>年"; // 月 print "<select name=\"mm\">\n"; for ($i = 1; $i <= 12; $i++) { print "<option>$i</option>\n"; } print "</select>月"; // 日 print "<select name=\"dd\">\n"; for ($i = 1; $i <= 31; $i++) { print "<option>$i</option>\n"; } print "</select>日"; ?> </td> <td><input type="submit" value="送信" name="sub1"></td> </tr> </table> </form> </body> </html>