LoginSignup
0
0

More than 1 year has passed since last update.

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

Posted at

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

画面

ev007.JPG

内容

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>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0