セッションとは,PHPシステム側で用意される時限付きの状態記憶機能です。セッションが有効である間は固有の変数(セッション配列)である$_SESSION
を使うことができ,どのPHPスクリプトであってもセッションを有効にすればこの$_SESSION
に記憶された値を共有し,読み書きすることができるようになります。これによって,例えば一度ログインしたユーザかどうかの情報をどのページでも確認することが可能になります。
session_start
ファンクションを使用し,初期化処理を行う必要があります。セッション配列$_SESSION
に値を格納し,別ページでも利用できること確認しましょう。ここで使用するファイルと,セッション変数の共用の様子を示したものが下記の図になります。一通り実行した後で,$_SESSION['word']
に格納された値がどのように共通化されているのか,もう一度確認して下さい。
まず,次のフォームから値を入力します。
HTMLファイル:session_form.html
画面の表示
フォームから受け取ったデータ$_POST['word']
をセッション配列$_SESSION['word']
に格納するスクリプトは次のようになります。
PHPスクリプト:session_start.php
$_SESSION['word']
に入力された値を表示して確認し,ページ下のリンクをクリックして別のPHPスクリプトsession_follow.php
に飛んでみましょう。
画面の表示
前のページと同じ値が$_SESSION['word']
から取得できるか確認するPHPスクリプトが下記になります。
PHPスクリプト:session_follow.php
同じ値が入っていることを確認したら,ページ下のリンクからセッションを終了させるPHPスクリプトに飛びます。
画面の表示
セッションを終了するにはsession_unset()
,あるいはsession_destroy()
ファンクションを使います。
session_unset関数
は全てのセッションを終了させます。セッション配列の個別のインデックスを消去するにはunset($_SESSION[インデックス])
とします。
PHPスクリプト:session_end.php
画面の表示