【PHP】セッションの確認方法

・セッションは、サーバーがクライアントを識別する際によく利用されます。

・セッションとは、通信の「開始」から「終了」までの一連の流れのことです。

・クライアントとサーバーの通信においては、クライアント(ブラウザ)からサーバーにアクセスされた時点が「開始」となり、サーバーとの接続が遮断された時点が「終了」となります。

・例:会員制サイトでは、クライアントがサーバーに会員情報(IDやパスワード)を渡します。サーバーはセッションIDを発行しクッキーに格納してクライアントに渡します。クライアントは以後の通信時にクッキーサーバーに渡すことで会員であることを認識してもらうことが出来ます。

セッションの流れ

1. クライアント(ブラウザ)がWEBサーバーにアクセスします。

2. WEBサーバーのプログラムがセッションIDを発行し、クッキーに格納してクライアントに引き渡します。

3. クライアントが再度WEBサーバーにアクセスする際、クッキーを引き渡します。

4. WEBサーバーのプログラムがセッションIDを取得してクライアントを識別します。

セッション関数と用途

セッション関数とセッション変数を一覧で紹介します。

関数用途
session_start()新しいセッションを開始、あるいは既存のセッションを再開する。
session_id()現在のセッション ID を取得または設定する。
session_name()現在のセッション名を取得または設定する。
session_regenerate_id()現在のセッションIDを新しく生成したものと置き換える。
session_unset()全てのセッション変数を開放する。
session_destroy()セッションに登録されたデータを全て破棄する。
$_SESSION[変数名]グローバルセッション変数

サーバーのセッションを確認する方法

以降は、echoの短縮構文を用いた表現方法を用いています。下記リンク先もご参照頂けますと幸いです。

セッションの開始、名前、IDの取得

セッションの開始:session_start()

<php session_start() ?>でセッションを開始します。

セッションIDの取得:session_id()

echo session_id()でセッションIDを取得します。

セッション名の取得:session_name()

echo session_name()でセッション名を取得します。

<!DOCTYPE html>
<?php
session_start();
?>
<html lang="ja">
<head>
    <title>セッションの確認</title>
</head>
<body>
    <?= session_id()?>
    <br>
    <?= session_name()?>
</body>
</html>
// 実行結果
ehc4i9if93ri9de1vpb7h1v1pl
PHPSESSID

セッションの保存・取得・削除

セッションの保存・取得・削除
<?php
session_start();
$_SESSION["username"]="Tanaka";
// <= セッションの保存:$_SESSION["キー(key)"]="値(value)" でセッション変数にキーを指定して値を代入出来ます。今回は、キー(key)="username", 値(value)="Tanaka"です。
// 補足:$_SESSIONは連想配列型です。そのため、キー(key)と値(value)を持つ必要があります。(連想配列の例、array={"key1":"value1", "key2":"value2"})
?>
<html>
    <head>
        <title>sessionのサンプル</title>
    </head>
    <body>
        <p>サーバーに保存されているセッションは、
            <?php echo $_SESSION["username"]; ?>
            <!-- <=セッションの取得:$_SESSION["キー"]で定義したセッション変数を取得できます。 -->
            です。
        </p>
        <p>以下ではセッションの削除を行っています。
            <?php unset($_SESSION["username"]); ?>
            <!-- <=セッションの削除:unset($_SESSION[‘キー’] );でセッション変数を削除しています。 -->
            <?php echo $_SESSION["username"]; ?>
        </p>
    </body>
</html>

// 実行結果
サーバーに保存されているセッションは、 Tanaka です。

以下ではセッションの削除を行っています。
Warning: Undefined array key "username" in C:\xampp\htdocs\session_practice.php on line 20
<= 18行目で$_SESSION["username"]を削除していますので、20行目で$_SESSION["username"]を呼び出すと、上記のように定義されていませんとエラーが返されます。
  これでセッションが削除されていることが確認出来ました。
実行結果

因みに、新規sessionが発行された際は、xampp環境で処理を実行している場合、xamppのtmpフォルダにSSID名のファイルが作成されます。

また、session名を保存した場合は、そのsession名がファイル内に保存されます。

セッションの保存・取得と共有フォルダに保存されるファイルの内容
コード
<?php
session_start();
$_SESSION["username"]="Tanaka";
?>
<html>
    <head>
        <title>sessionのサンプル</title>
    </head>
    <body>
        <p>サーバーに保存されているセッションは、
            <?php echo $_SESSION["username"]; ?>
            です。
        </p>
        <p>セッション名は、<?php echo session_name(); ?> です。</p>
        <p>セッションIDは、<?php echo session_id(); ?> です。</p>
    </body>
</html>
実行結果
共有フォルダ
ファイルの中身

コメント

タイトルとURLをコピーしました