2021.09.30
【PHP応用】セッションの使い方
セッションの使い方
今回はセッションの実際の使用方法について紹介します。
■セッションの開始・終了
○セッションの開始
StartSession1.php
<?php class Sample_Session_1 { // セッションを開始し、値を格納する関数 function sessSet($key,$val){ session_start(); $_SESSION[$key] = $val; } // セッションに保管した値を取り出す関数 function sessGet($key){ return $_SESSION[$key]; } } $ss1 = new Sample_Session_1(); $ss1->sessSet("a","AAA"); // セッションを開始し、「a」をキーとした「AAA」という値を保管 echo $ss1->sessGet("a"); // 「a」というキーでセッションに保管した値を表示する ?>
StartSession2.php
セッションを再開し、StartSession1.php で保管した値を表示する
<?php session_start(); // セッションを再開する echo $_SESSION["a"]; ?>
○セッションの破棄
SessionEnd.php
<?php session_start(); // セッション変数を全て解除する $_SESSION = array(); // []; // セッションを切断するにはセッションクッキーも削除する。 // Note: セッション情報だけでなくセッションを破壊する。 if (isset($_COOKIE[session_name()])) { $params = session_get_cookie_params(); setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"] ); } // 最終的に、セッションを破壊する session_destroy(); ?>
■解説
$_SESSION
・PHPの定義済みの配列変数($_GET,$_POSTと同類)。
・セッションが開始されると、$_SESSION連想配列に、任意のキーに任意の変数をセットでき、また参照もできる。
session_start();
・セッションを開始・再開する関数。
・session_startは、ファイルの先頭(HTML出力される前)に実行する必要がある。
・セッション生成後、他のphpでsession_start関数を使用するとセッションが再開する。
session_destroy();
・セッションを破棄する関数。
・セッションファイルを破棄するだけなので、メモリ上に残るセッション情報は別途削除する必要がある
セッションを開始して保管した値は別のphpファイルからでも
セッションを再開すれば取得することができます。
また、セッションを破棄する際はsession_destroy関数を使用しますが、
全てのセッション情報の削除はできないため、
セッション内に残るデータの有効期限を過去に設定することにより
残ったセッション情報を削除することができます。
■まとめ
- セッションの開始にはsesstion_start関数を使用する
- セッションの破棄にはsession_destroy関数を使用する