戻る

受け取ったデータの妥当性を確認する

strlen()関数、preg_match()関数

受け取ったデータをデータベースに保存する場合、そのデータ長が長すぎて適切であるとは限りません。また、ホームページアドレスを入力する欄に対して、ユーザが間違えてメールアドレスを入力してしまうなどのミスも考えられます。データの整合性をより高めるためには、受け取ったデータを処理する前に、このような確認が欠かせません。

この例では、テキストボックスから入力されたデータの妥当性を調べるため、データ長の上限と先頭文字列を確認しています。実際のデータの妥当性の確認では、それが正しいデータであるか、多くの要件で確認する必要があります。フォームから受け取ったデータは通常の変数と同じなので、各種の文字列関数や正規表現などを組み合わせて、様々な確認ができます。

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>

inserted by FC2 system