読者です 読者をやめる 読者になる 読者になる

kwsktr's study log

kwsktr のおべんきょログ

PHP のそれっぽい 入力フォーム と 確認画面 と サンクスページ を作る

PHP の基礎ともいえる form を最低限どのように実装していいのかが、まとまってないので書いてみます。
サンプルコードとかは落ちているし、フレームワークを使うのが当たり前ではありますが、なんとなく概念っぽいのを再確認しておきたいので何回かにわけて日本語で書くことにします。

最低限のやりたいこと

  • 入力ページにメールアドレスを入力してもらう
  • 入力が終わったら、ボタンを押して確認ページに移動
  • 確認ページで確認してもらう
  • 確認してもらったら、ボタンを押してありがとうページに移動
  • ありがとうページで「ありがとう」と表示


本当はデータベースへの送信とか、メールアドレスへメールを送るなどしないといけないのですが、現状はいらないものとしておきます。

ファイル名

  • form.php
    • 入力ページ
  • result.php
    • 確認ページ
  • thanks.php
    • ありがとうページ

注意点

セキュリティ的にも、機能的にも問題があります。
改善していくプロセスを記述していく予定です。

form.php

<!doctype html>
<html lang = "ja">
    <head>
        <meta charset = "UTF-8">
        <title>入力ページ</title>
    </head>
    <body>
        <h1>メールアドレスを入力してください</h1>
        <p>入力が終わったら送信ボタンを押してください</p>
        <!--
            送信方法はPOST
            送り先はresult.php
            送りたいのは email
        -->
        <form method="post" action="result.php">
            <p><label>メールアドレス: <input type="email" name="email"></label></p>
            <p><input type="submit" value="送信"></p>
        </form>
    </body>
</html>

result.php

<!doctype html>
<html lang = "ja">
    <head>
        <meta charset = "UTF-8">
        <title>確認ページ</title>
    </head>
    <body>
        <h1>メールアドレスを確認してください</h1>
        <!--
            送信された email を表示
        -->
        <table>
            <tr>
                <td>メールアドレス</td>
                <td>
                    <?php
                        echo $_POST['email'];
                    ?>
                </td>
            </tr>
        </table>
        <p>正しければ確認を押してください</p>
        <p>
            <a href="form.php">戻る</a>
            <a href="thanks.php">確認</a>
        </p>
    </body>
</html>

thanks.php

<!doctype html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>ありがとう</title>
    </head>
    <body>
        <h1>登録ありがとうございました。</h1>
    </body>
</html>

改善するポイントは多々あるので、気になったところから書いていこうと思います。

  1. XSS 対策をしよう :: PHP でそれっぽいフォームを作成する その2 - kwsktr's study log
Qiita でやったほうがいいのかな