リクエストが開始された際にセッション名はリセットされ、php.ini
のsession.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']
で参照できる。
bool session_start()
セッションの開始
bool session_destroy()
セッションの破棄。サーバ側で保持されたセッション情報は、session_destroy
関数を明示的に呼び出すか、セッションの有効期限を経過すると破棄される。
現在のセッションIDを新しいものに置き換える。成功した場合はtrue、失敗した場合はfalseを返す。
bool session_regenerate_id([bool] $delete_old_session = false])