PHP フォームからデータをPOSTで送信する(データチェック有)
フォームからデータをPOSTで送信してそのままブラウザへ出力する。
元になったサンプルはこちら。
入力データは、3文字から8文字までの半角英数字のみ許可
「test.php」
<?php
//フォームからのデータを受け取る
$output = false;
if (isset($_POST['action']) && $_POST['action']=='disp') {
$output = true;
//データチェック
$error = IsErrFormData($_POST['data01']);
if ($error==false) {
$data01 = htmlspecialchars($_POST['data01'], ENT_QUOTES);
}
}
?>
<html>
<head>
<title>フォームからデータをPOSTで送信する</title>
</head>
<body>
<form name="form01" action="test.php" method="post">
<input type="text" name="data01">
<input type="hidden" name="action" value="disp">
<input type="submit" name="submit" value="送信">
</form>
<?php
//フォームからのデータを出力
if ($output==true) {
if ($error==false) echo $data01;
else echo '入力データが不正です';
}
?>
</body>
</html>
<?php
//3文字から8文字までの半角英数字か判定(エラー有ならtrue、無ならfalseを返す)
function IsErrFormData($pstr) {
if (preg_match("/^[a-zA-Z0-9]{3,8}$/", $pstr)) return false;
else return true;
}
?>
IsErrFormData関数内で、preg_match関数を使って入力データのチェックを行う。
javascriptによる入力データのチェックを追加したサンプルはこちら。
関連エントリーはこちら。