PHPでセッションを利用してみた


以前
クッキー、セッションについてまとめてみましたが、実装していなかったので
今回は例を用いて実装していこうと思います。
クッキーとセッションって何?[図あり]

画面

内容

http://localhost/session/session1.php
・初回の場合「初回の訪問です。」表示。
・2回目以降「訪問回数」表示。

http://localhost/session/session2.php
session1.phpの「ログアウトする」ボタンを押下すると表示。
セッションを削除します。

http://localhost/session/session3.php
session2.phpの「ログアウトの確認」ボタンを押下すると表示。
現在のセッションの状態を確認できる。

実装

session1.php
<?php
session_start();
?>

<html>

<head>
    <title>PHP TEST</title>
</head>

<body>

    <?php
//東京の時刻に設定
    date_default_timezone_set('Asia/Tokyo');

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

        //セッション変数は複数保存可能
        $_SESSION["visited"] = 1;
        $_SESSION["date"] = date('Y年m月d日 H時i分s秒');
    } else {
        $visited = $_SESSION["visited"];
        $visited++;//更新するたびに訪問回数が増えるように
        print('訪問回数は' . $_SESSION["visited"] . 'です。<br>');

        $_SESSION["visited"] = $visited;

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

        $_SESSION["date"] = date('Y年m月d日 H時i分s秒');
    }

    ?>

    <p>
        <a href="./session2.php">ログアウトする</a>
    </p>

</body>

</html>
session2.php
<?php
session_start();
?>

<html>

<head>
    <title>PHP TEST</title>
</head>

<body>

    <?php
    print('セッション変数の一覧を表示します。<br>');
    print_r($_SESSION);
    print('<br>');

    print('セッションIDを表示します。<br>');

    //デフォルトでPHPSESSIDが表示
    print($_COOKIE["PHPSESSID"] . '<br>');

    print('<p>ログアウトします</p>');

    //セッション変数を全て解除
    $_SESSION = array();

    if (isset($_COOKIE["PHPSESSID"])) {
        setcookie("PHPSESSID", '', time() - 1800, '/');
    }
    //セッションを破棄する
    session_destroy();
    ?>

    <p>
        <a href="./session3.php">ログアウトの確認</a>
    </p>

</body>

</html>
session3.php
<?php
session_start();
?>

<html>

<head>
    <title>PHP TEST</title>
</head>

<body>

    <?php
    print('セッション変数の確認をします。<br>');
    if (!isset($_SESSION["visited"])) {
        print('セッション変数visitedは登録されていません。<br>');
    } else {
        print($_SESSION["visited"] . '<br>');
    }

    print('セッションIDの確認をします。<br>');
    if (!isset($_COOKIE["PHPSESSID"])) {
        print('セッションは登録されていません。<br>');
    } else {
        print($_COOKIE["PHPSESSID"] . '<br>');
    }
    ?>
    <a href="./session1.php">ログインする</a>

</body>

</html>