フォーム入力をセッション変数へ

PHPのシンタックス

  1. HOME
  2. セッション変数

POSTされた値をセッション変数で受け継ぐ

  • フォームのソースコード

    <form method="POST" action="confirm.php">
    <li><label>    名前:
        <input type="text" name="name" placeholder="ニックネーム可" ;>
      </label></li>
    <li><label>好きな食べ物:
        <input type="text" name="food" ;>
      </label></li>
    <li><input type="submit" value="確認する"></li>
    </form>

    確認ページのソースコード

    <?php
    require_once("es.php");
    session_start();
    ?>
    
    <?php
    if (!checkEn($_POST)) { //文字エンコードの検証
      $encoding = mb_internal_encoding(); //PHPが使うエンコードを調べる
      $err = "Encoding Error! The espected encoding is" . $encoding;
      exit($err); //エラーメッセージを出してコードのキャンセルする
    }
    ?>
    
    <?php
    //POSTされた値をセッション変数に受け渡す
    if (isset($_POST['name'])) {
      $_SESSION['name'] = $_POST['name'];
    }
    if (isset($_POST['food'])) {
      $_SESSION['food'] = $_POST['food'];
    }
    $error = [];
    if (empty($_SESSION['name'])) { //未設定の時エラー
      $error[] = "名前を入力してください";
    } else {
      $name = trim($_SESSION['name']); //名前を取り出す
    }
    if (empty($_SESSION['food'])) { //未設定の時エラー
      $error[] = "好きな食べ物を入力してください";
    } else {
      $food = trim($_SESSION['food']); //名前を取り出す
    }
    ?>
    
    <!doctype html>
    <html lang="ja">
    
    <head></head>
    
    <body>
      <header></header>
      <div class="main-wrapper">
        <h2>セッション確認ページ</h2>
        <form>
          <?php if (count($error) > 0) { ?>
            <!-- エラーがあったとき -->
            <span class="error"><?php echo implode('<br>', $error); ?></span><br>
            <span>
              <input type="button" value="戻る" onclick="location.href='sessionForm1.php'">
            </span>
          <?php } else { ?>
            <!-- エラーがなかったとき -->
            <span>
                  名前:<?php echo es($name); ?><br>
              好きな食べ物:<?php echo es($food); ?><br>
              <input type="button" value="戻る" onclick="location.href='sessionForm1.php'">
              <input type="button" value="送信する" onclick="location.href='thanks.php'">
            </span>
          <?php } ?>
        </form>
      </div><!-- /.main-wrapper -->
    </body>
    
    </html>

    完了ページのソースコード

    <?php
    require_once("es.php");
    session_start();
    ?>
    
    <?php
    if (!checkEn($_POST)) { //文字エンコードの検証
      $encoding = mb_internal_encoding(); //PHPが使うエンコードを調べる
      $err = "Encoding Error! The espected encoding is" . $encoding;
      exit($err); //エラーメッセージを出してコードのキャンセルする
    }
    ?>
    
    <?php
    //POSTされた値をセッション変数に受け渡す
    if (isset($_POST['name'])) {
      $_SESSION['name'] = $_POST['name'];
    }
    if (isset($_POST['food'])) {
      $_SESSION['food'] = $_POST['food'];
    }
    $error = [];
    if (empty($_SESSION['name'])) { //未設定の時エラー
      $error[] = "名前を入力してください";
    } else {
      $name = trim($_SESSION['name']); //名前を取り出す
    }
    if (empty($_SESSION['food'])) { //未設定の時エラー
      $error[] = "好きな食べ物を入力してください";
    } else {
      $food = trim($_SESSION['food']); //名前を取り出す
    }
    ?>
    
    <!doctype html>
    <html lang="ja">
    
    <head></head>
    
    <body>
      <header></header>
      <div class="main-wrapper">
        <h2>セッション確認ページ</h2>
        <form>
          <?php if (count($error) > 0) { ?>
            <!-- エラーがあったとき -->
            <span class="error"><?php echo implode('<br>', $error); ?></span><br>
            <span>
              <input type="button" value="戻る" onclick="location.href='sessionForm1.php'">
            </span>
          <?php } else { ?>
            <!-- エラーがなかったとき -->
            <span>
                  名前:<?php echo es($name); ?><br>
              好きな食べ物:<?php echo es($food); ?><br>
              <input type="button" value="戻る" onclick="location.href='sessionForm1.php'">
              <input type="button" value="送信する" onclick="location.href='thanks.php'">
            </span>
          <?php } ?>
        </form>
      </div><!-- /.main-wrapper -->
    </body>
    
    </html>