日々夢想

つれづれなるままに ひぐらし すずりにむかいて 

session(PHP)

PHPでのsessionについてお勉強したのでまとめます。

sessionとは

セッションとは、ユーザ毎の情報をサーバー側で保持する仕組み。
セッションに記憶したデータは複数ページに渡って、更新・参照可能。
ユーザ毎の情報を記載したWebページが生成できたりする。
ユーザの情報を保持する仕組みとしてクッキーも存在するが、こちらは、
クライアント側に情報を保持し、サーバーはクッキー内の情報を直接参照できない。
セッションにもクッキーを利用している。(セッションIDをクッキーに保存している)

関連用語

セッション変数

セッションとして記憶する値が格納された変数。
PHPからは

<? php
$_SESSION['']

でアクセス可能。

セッション名

セッション開始時に、利用されるクッキー名。
デフォルトではphp.iniにて"PHPSESSID"と設定されている。
session_name()で取得可能。引数(文字列)を与えた場合、与えられた文字列がセッション名となる。
$_COOKIE[session_name()]。
セッションとクッキーの連携に必要な情報が格納されているクッキーのアドレス的なものかな。
セッションIDを記憶しているクッキーの名前?

セッションID

クライアントとサーバー内のセッションを関連付け、識別する値。
PHPからは以下で取得。

<? php
session_id();
//or
$_COOKIE[session_name()];

ライフサイクル

開始
<? php
session_start();
session_regenerate_id(true);
生成・更新
<? php
$_SESSION['index'] = $value;
参照
<? php
$value = $_SESSION['index'];
破棄
<? php
unset($_SESSION['xxx']);// 全てのセッション変数を削除する場合は$_SESSION = array();
if ( isset($_COOKIE[session_name()]) ) {
setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();

設定

後記

クッキーの理解を前提としている説明が多いので、次はクッキーを勉強してみます。
順序が逆だったかな。。。
あと、さくっと簡単な図を書いて、アップできたらいいなぁと。