クッキーの有効期限の設定

広告

クッキーは有効期限を指定しない場合、クライアント側のブラウザが閉じてしまうと消えてしまいます。ブラウザが閉じてもクッキーを一定期間残しておきたい場合には明示的に有効期限を設定します。

有効期限はsetcookie関数の3番目の引数で指定します。指定する値はUNIX標準時1970年1月1日からの秒数で指定することになっているため、まず現在時刻のUNIX標準時からの経過秒数を取得し、有効期限を設定したい時間を秒に換算した値を加算して設定すると言う手順になります。

現在時刻のUNIX標準時からの経過秒数はtime関数で取得できますので、実際には下記のように行います。(time関数については『日時を取得する(time, date)』を参照して下さい)。

有効期限を今から3日間にする場合
time() + 259200

259200 = 60(秒) * 60(分) * 24(時間) * 3(日)
サンプルコード

では試してみます。下記では有効期限を3分間にしています。

<?php
    if (isset($_COOKIE["visited"])){
        $count = $_COOKIE["visited"] + 1;
    }else{
        $count = 1;
    }

    $flag = setcookie("visited", $count, time() + 180);
?>

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

<?php
    print('<p>訪問回数は'.$count.'回目です</p>');
?>

</body>
</html>

上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。下記は数回再読み込みを行っています。

PHPでクッキーの有効期限の設定

このまま3分以上待ってから、再度ブラウザで再読み込みを行うと有効期限が切れてクッキーが消えます。

PHPでクッキーの有効期限の設定

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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