とりあえずの備忘録

主にパソコンやインターネットに関するメモ

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による入力データのチェックを追加したサンプルはこちら。

関連エントリーはこちら。