セッション変数の書き込みと読み込み

広告

セッションを開始したら、サーバ側に値を保存することができます。クライアント毎に色々な値が書き込まれますが、セッションIDを識別子としてどのクライアントが保存した値かは識別できるようになっています。

サーバ側に保存する値をセッション変数と言います。セッション変数は複数保存できますので色々な値を保存することができます。

セッション変数に値を書き込むにはPHPで定義済みの変数「$_SESSION」を使います。

$_SESSION[セッション変数名] = 

例えばセッション変数「visited」に値を書き込むには下記のようにします。

$_SESSION["visited"] = 1;

クッキーだけを使って値をクライアント側に保存する場合は盗み見られる場合などもあります。セッションでは値はサーバ側にセッション変数として保存されますので大事なデータを扱う場合などはセッションの方を出来る限り使います。

サンプルコード

では実際に試してみます。まずセッションを開始し、セッション変数に値を保存します。そして同じホームページにクライアントがアクセスする度にセッション変数の値を増加させてみます。また同時に前回訪問した日時を表示させてみます。

<?php
    session_start();
?>

<html>
<head><title>PHP TEST</title></head>
<body>

<?php

    if (!isset($_SESSION["visited"])){
        print('初回の訪問です。セッションを開始します。');

        $_SESSION["visited"] = 1;
        $_SESSION["date"] = date('c');
    }else{
        $visited = $_SESSION["visited"];
        $visited++;

        print('訪問回数は'.$visited.'です。<br>');

        $_SESSION["visited"] = $visited;

        if (isset($_SESSION["date"])){
            print('前回の訪問日時は'.$_SESSION["date"].'です。<br>');
        }

        $_SESSION["date"] = date('c');
    }

?>

</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。

セッション変数に値を書き込み

2回目以降に同じホームページにアクセスすると、セッション変数を読み出して下記のように表示されます。

セッション変数に値を書き込み

セッション変数に値を書き込み

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。