PHPセッション

リクエストが開始された際にセッション名はリセットされ、php.inisession.nameに保存されたデフォルト値に戻る。セッションを開始した際にクライアントのクッキー名として利用されるのがデフォルトではPHPSESSIDとなっている。この値をセッション名という。デフォルト値はphp.iniで設定されている。

session.name = PHPSESSID

セッションはクッキーと似ているが、クッキーの場合は管理したい値をクライアント側に保持するのに対し、セッションではサーバ側で管理する。クライアント側には、どのセッションを使っているのかを識別するためのセッションIDだけを保存する。このセッションIDをクライアント側に保存するためにクッキーを使うのが一般的である。

クライアントからアクセスが最初にあった場合に、新しいセッションを作成しセッションを開始する必要がある。それにはsession_start関数を使う。

session_start() セッションを生成する。生成されたセッションは、セッションIDをクッキーに埋め込み保持される。

session_start()はセッションを作成する。もしくは、リクエスト上でGET、POST又はクッキーにより渡されたセッションIDやセッションの基づき現在のセッションを復帰する。

セッションが開始されていない状態でこの関数が呼ばれた場合は、新しいセッションを開始しセッションIDを割り当てる。セッションIDはクライアント側にクッキー名PHPSESSIDで保存される。

セッションが開始されているクライアント(セッションIDがクッキーとして保存されているクライアント)からアクセスがあった場合にこの関数を使っても新たにセッションを開始しなおすのではなく、サーバ側で保存されているセッション変数が利用できるように準備される。

セッションIDは$_COOKIE['PHPSESSID']で参照できる。

session_start

bool session_start()

セッションの開始

session_destroy

bool session_destroy()

セッションの破棄。サーバ側で保持されたセッション情報は、session_destroy関数を明示的に呼び出すか、セッションの有効期限を経過すると破棄される。

session_regenerate_id

現在のセッションIDを新しいものに置き換える。成功した場合はtrue、失敗した場合はfalseを返す。

bool session_regenerate_id([bool] $delete_old_session = false])
delete_old_session
関連付けられた古いセッションを削除するかどうか