PHPの基礎 - セッション

提供:MochiuWiki : SUSE, EC, PCB
2021年3月5日 (金) 15:40時点におけるWiki (トーク | 投稿記録)による版 (ページの作成:「== 概要 == PHPにおいて、セッションを利用する方法を記載する。<br> <br><br> == セッションの開始 == セッションとは、クッキーは…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

概要

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"].' です。');
    }
 ?>