session(PHP)
PHPでのsessionについてお勉強したのでまとめます。
sessionとは
セッションとは、ユーザ毎の情報をサーバー側で保持する仕組み。
セッションに記憶したデータは複数ページに渡って、更新・参照可能。
ユーザ毎の情報を記載したWebページが生成できたりする。
ユーザの情報を保持する仕組みとしてクッキーも存在するが、こちらは、
クライアント側に情報を保持し、サーバーはクッキー内の情報を直接参照できない。
セッションにもクッキーを利用している。(セッションIDをクッキーに保存している)
関連用語
セッション名
セッション開始時に、利用されるクッキー名。
デフォルトでは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();
設定
読んだ記事
http://www.phpbook.jp/tutorial/session/index1.html
http://php.net/manual/ja/session.examples.basic.php
後記
クッキーの理解を前提としている説明が多いので、次はクッキーを勉強してみます。
順序が逆だったかな。。。
あと、さくっと簡単な図を書いて、アップできたらいいなぁと。