PHPにおけるセッション
ブラウザでサイトのページを表示しているとき、 そのページのPHPスクリプトはとっくに実行を終え、 私たちのことを忘れています。したがって、サイトの あるページから別のページへ移動する場合、 PHPスクリプトは前のページのデータ、例えば変数の値などを 覚えておくことはできません。
しかし、ユーザーの選択を記憶したり、 ユーザーがログインしていたことを記憶したりするためには、 このような仕組みが非常に必要です。
PHPでは、ユーザーのデータをサイトのページ間で保存するために、 セッションが用意されています。 私たちは何らかの情報をセッションに書き込み、 このサイトの次回の、または別のスクリプトの実行時に そこから読み出すことができます。 セッションを使って、ユーザーの認証や、 オンラインショップのショッピングカートなどを実装できます。
ユーザーのセッションはサーバー上に保存されます。 しかし、セッションは永久に生き続けるわけではなく、 約30分間だけ存続します - もしユーザーがその時間内に サイトへのリクエストを一切行わなければ、 そのセッションは削除され、空になります。
では、PHPでセッションを扱う方法を見てみましょう。
セッションに何かを書き込むには、まず関数
session_startを使ってセッションを
初期化する必要があります:
<?php
session_start();
?>
初期化後、私たちはセッションに何かを書き込んだり、
そこから何かを読み出したりできます。
これは、スーパーグローバル配列
$_SESSIONを使って行います。
実際に試してみましょう。ファイル
test1.phpを作成し、次のコードを配置します:
<?php
session_start();
$_SESSION['test'] = 'abcde'; // セッションに書き込む
?>
そして、ファイル test2.php には次のコードを配置します:
<?php
session_start();
echo $_SESSION['test']; // セッションから読み出す
?>
ではまず、ブラウザでファイル
test1.phpを開き、その後 test2.phpを開いてください。
2つ目のファイルを開いたとき、ブラウザには
1つ目のファイルでセッションに書き込まれた内容が表示されます。
2つのファイルを作成してください。最初のファイルを実行するとき、 セッションに2つの数値を書き込み、 2つ目のファイルを実行するとき、 それらの数値の合計を画面に表示してください。