入力エラーチェック

入力エラーチェック


≪index.php

<?php
//初期化
$yname = '';
$yage = '';
$ytel = '';

// セッションの開始
session_start();

if(isset($_SESSION['your_name'])){
  $yname = $_SESSION['your_name'];
}
if(isset($_SESSION['your_age'])){
  $yage = $_SESSION['your_age'];
}
if(isset($_SESSION['your_tel'])){
  $ytel = $_SESSION['your_tel'];
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>POSTで送信</title>
</head>
<body>
<form action="check.php" method="post">
<p>お名前:<input type="text" name="your_name" value="<?php echo $yname; ?>"></p>
<p>年齢:<input type="text" name="your_age"  value="<?php echo $yage; ?>"></p>
<p>電話番号:<input type="text" name="your_tel"  value="<?php echo $ytel; ?>"></p>
<input type="submit" value="送信">
</form>
</body>
</html>


≪check.php

<?php
//issetは変数の中に値があるか、もしくは変数自体が存在するか確認する関数
if( !isset($_POST[ 'your_name' ]) || !isset($_POST[ 'your_age' ]) || !isset($_POST[ 'your_tel' ])){
  // 'Location:パス(path)でその場所に遷移する'
  header( 'Location: index.php' );
  exit;
}

// セッションの開始
session_start();

// 入力値の取得
$yname = htmlspecialchars($_POST['your_name'], ENT_QUOTES, 'UTF-8');
$yage = htmlspecialchars($_POST['your_age'], ENT_QUOTES, 'UTF-8');
$ytel = htmlspecialchars($_POST['your_tel'], ENT_QUOTES, 'UTF-8');

// 入力値をセッション変数に格納
$_SESSION['your_name'] = $yname;
$_SESSION['your_age'] = $yage;
$_SESSION['your_tel'] = $ytel;

// 入力値のチェック
if (empty($_POST[ 'your_name' ])) {
  echo 'お名前を入力してください。';
  echo '<p><a href="index.php">入力画面へ戻る</a></p>';
  exit;
}
if (empty($_POST[ 'your_age' ])) {
  echo '年齢を入力してください。';
  echo '<p><a href="index.php">入力画面へ戻る</a></p>';
  exit;
}
if (empty($_POST[ 'your_tel' ])) {
  echo '電話番号を入力してください。';
  echo '<p><a href="index.php">入力画面へ戻る</a></p>';
  exit;
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>POSTで受信</title>
</head>
<body>
<p>お名前:<?php echo $yname ?></p>
<p>年齢:<?php echo $yage ?></p>
<p>電話番号:<?php echo $ytel ?></p>
</body>
</html>