フォームデータのチェック - まとめ

データが入力されたかどうかをチェックする

<!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>