PHPの基礎 - セッション
概要
PHPにおいて、セッションを利用する方法を記載する。
セッションの開始
セッションとは、クッキーは管理する値をクライアントに保存するのに対して、セッションは管理する値をサーバに保存する。
クライアントには、どのセッションを使用しているかを識別するためのセッションIDのみをクライアントに保存する。
一般的に、セッションIDをクッキーの値としてクライアントに保存する。(セッションを使用する場合、クッキーも同時に使用する)
また、重要なデータを扱う場合はセッションを使用する。
クライアントから初めてアクセスがある場合、session_start
関数を使用して、新しいセッションを作成してセッションを開始する必要がある。
bool session_start() session_start関数は、セッションを作成する。 もしくは、リクエスト上でGET、POST、クッキーにより渡されたセッションIDに基づき、 現在のセッションを復帰する。 戻り値: 常にTRUEを返す。
セッションが開始されていない状態でsession_start
関数が呼ばれる場合、新しいセッションを開始してセッションIDを割り当てる。
セッションIDは、クライアントにクッキー名PHPSESSID
で保存される。
(クライアントがクッキーを利用できない場合、次のセクションに記載する)
既にセッションが開始されているクライアント(既にセッションIDがクッキーとして保存されているクライアント)からアクセスがある場合、
session_start
関数を実行しても新たにセッションを開始せずに、サーバに保存されているセッション変数を利用できるように準備する。
以下の例では、セッションを開始して、クライアントにセッションIDがクッキーとして保存しているか確認している。
初めてアクセスする場合、セッションIDが割り当てられて、クライアントは自動的にクッキーを利用してセッションIDを保存する。
次回以降は、クッキー名PHPSESSIDがクライアントから送信されて、新たにセッションは開始されずに、以前のものを利用する。
また、セッションIDにはランダムな値が設定される。
<?php
session_start();
?>
<?php
if(!isset($_COOKIE["PHPSESSID"]))
{
print('初回の訪問です。セッションを開始します。');
}
else
{
print('セッションは開始しています。<br>');
print('セッションIDは '.$_COOKIE["PHPSESSID"].' です。');
}
?>