nishiru3の日記

備忘録です。ネットのゴミ。

リダイレクトでPOSTの確認

入力値の確認

POST値の確認を別ページにせずに現在のページで処理する方法である。

ソース

入力および確認のページのソースは次のとおりである。

<?php
/**
 * POST値が記入されていない場合、このページに戻る。
 */
session_start();
if(!empty($_POST)){
    if($_POST['name'] == '') {
        $error['name']='blank';
    }
    // エラーがない場合、sessionに変数を保存して、
    // headerで次のページに飛ばす。
    if(empty($error)) {
        $_SESSION['join'] = $_POST;
        header('Location: check.php');
        exit();
    }
}
?>
<form action="" method="post" enctype="multipart/form-data">
    名前:<br />
    <input type="text" name="name" size="50" />
    <?php if($error['name']=='blank'): ?>
    <br />名前を記入してください。<br />
    <?php endif; ?>
    <input type="submit" value="送信" />
</form>

入力値を確認してOKだった場合のページの遷移先は次の「check.php」である。

<?php
session_start();
echo '無事記入されています。';
$name = $_SESSION['join']['name'];
echo '名前:'.$name;