Developer

【PHP応用】セッションの使い方
2021.09.30
Lv1

【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関数を使用する