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>