PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
生徒
「PHPでフォームに入力した内容を、ページを移動しても残しておく方法ってありますか?」
先生
「はい、それにはセッション(session)を使うと便利です。セッションを使えば、ユーザーごとの情報を一時的に保存できます。」
生徒
「それって、ログインとかにも使われてるやつですか?」
先生
「そうですね!ログイン情報やショッピングカートの中身、そしてフォームの入力内容を保持するのにもセッションはよく使われます。今日は、フォーム入力の保持を例に、セッションの使い方を学んでいきましょう。」
1. セッションとは?初心者向けにやさしく説明
セッション(Session)とは、Webサイトを使っている間だけ情報を一時的に保存する仕組みです。たとえば、名前や住所などの情報をページ移動しても覚えておくことができます。
セッションは「サーバー側」で管理され、ユーザーごとに割り当てられた番号(セッションID)で区別されます。クッキーと似ていますが、クッキーはユーザーのパソコン側に保存されるのに対し、セッションはサーバー側に保存されるのが大きな違いです。
2. フォームに入力した値をセッションで保持するイメージ
たとえば、名前やメールアドレスを入力して「次へ」ボタンを押したとき、その入力内容をセッションに保存しておけば、次のページでその値を使うことができます。
途中で戻っても入力内容が消えずに済むので、ユーザーにとって親切な作りになります。
3. フォームを作成してセッションに保存する
まず、HTMLフォームを用意して、送信後にPHPでセッションに値を保存するようにします。
<form action="confirm.php" method="POST">
<label>お名前:</label>
<input type="text" name="name"><br>
<label>メールアドレス:</label>
<input type="email" name="email"><br>
<button type="submit">次へ</button>
</form>
次にconfirm.phpで入力内容をセッションに保存します。
session_start();
$_SESSION['name'] = $_POST['name'];
$_SESSION['email'] = $_POST['email'];
session_start()は、セッション機能を使うときに必ず最初に呼び出す関数です。
4. 確認ページでセッションの値を表示する
保存されたセッションの値は、別のページでも取り出して使うことができます。
session_start();
echo "お名前:" . $_SESSION['name'] . "<br>";
echo "メールアドレス:" . $_SESSION['email'];
これで、前のページで入力した内容を確認ページで表示できます。
5. 入力画面に戻ったときに入力値を保持する
入力ミスなどで前の画面に戻ったときも、セッションを使って入力内容を保持しておけば、もう一度書き直す手間が省けます。
<input type="text" name="name" value="<?php echo isset($_SESSION['name']) ? $_SESSION['name'] : ''; ?>">
このようにvalue属性にセッションの値を入れることで、再表示時にも内容が残ります。
6. セッションの注意点と使いどころ
セッションを使うと便利ですが、いくつか注意点があります:
- セッションを使うページでは必ず
session_start()を最初に書く - 多くのデータを保存しすぎないようにする
- ログアウト時や完了時には
session_destroy()で消す
セッションは、ユーザーごとに情報を保持できるとても便利な機能です。フォームの入力内容を保持したり、アンケートや注文フォームの途中保存など、いろいろな場面で使えます。