タイトル: $_SERVER
セッションを参照することでサーバからクライアント毎の情報を参照できる。
■セッションの仕組み
クライアント毎にIDが割り振られる。
IDを基にどのクライアントがどの情報を保持しているか判別する。
(実装レベルではID云々は意識する必要なし)
■PHPでのセッション情報取得方法
PHPでは$_SESSION変数を使用してクッキーの制御を行う。
セッションの開始は以下の通り。
session_start()
変数の参照方法は以下の通り。
$_SESSION[キー名]
変数の設定方法は以下の通り。
$_SESSION[キー名] = 値
セッションの破棄は以下の通り。
session_destroy();
実際の使い方は以下の例を参照。
【index.php】
<html>
<body>
<form method="GET" action="testSession.php">
<!-- テキストボックス -->
<input type="text" name="save"/>
<!-- 保存ボタン -->
<input type="submit" value="保存する"/>
</form>
<form method="GET" action="testSession2.php">
<!-- 破棄ボタン -->
<input type="submit" value="破棄する"/>
</form>
<?php
//セッション開始
session_start();
//セッションに保存した情報を表示する
if(@is_null($_SESSION['save'])) { //セッションに情報が無い場合
print "セッションには何も保存されていません";
} else { //セッションに情報がある場合
print "セッションには";
print $_SESSION['save'];
print "が保存されています。";
}
?>
</body>
</html>
テキストボックスに文字列を入れて「保存する」ボタンを押す。
【testSession.php】
<html>
<body>
<?php
//セッション開始
session_start();
//セッションに情報格納
$_SESSION['save'] = $_GET['save'];
print "セッションに情報を保存しました。";
?>
</body>
</html>
もう一度、index.phpを開くと・・・。
セッションに情報が格納されていることが確認出来る。
次に「破棄する」ボタンを押す。
【testSession2.php】
<html>
<body>
セッションを破棄しました。
<?php
session_start();
session_destroy(); //セッションの破棄
?>
</body>
</html>
もう一度、index.phpを開くと・・・。
セッションの情報が破棄されたことを確認できる。
※セッションの保存時間はphp.iniファイルの以下のパラメータで変更できる。(単位:秒)
session.gc_maxlifetime=1440
■セッションの破棄について
セッションを破棄する際の注意点としては、session_destroy関数のみではなく、$_SESSIONをnullにする必要がある。