クッキーの有効期限を設定
当ページのリンクには広告が含まれています。
ここでは、PHPスクリプトでクッキーの有効期限を設定する方法を紹介します。
クッキーの有効期限を設定
クッキーの有効期限には「1970年1月1日 00:00:00 GMT」からの経過秒である「Unixエポック」を使います。
クッキーの有効期限は関数 setcookie() を使って、以下のように設定します。
setcookie(クッキー名, クッキーの値, 有効期限)
クッキーの有効期限を「1分」「1時間」「1日」に設定する場合は以下のように設定します。
有効期限 1分(60秒)
setcookie(クッキー名, クッキーの値, time()+60)
有効期限 1時間(3600秒=60*60)
setcookie(クッキー名, クッキーの値, time()+60*60)
有効期限 1日(24時間=24*60*60)
setcookie(クッキー名, クッキーの値, time()+24*60*60)
それではサンプルスクリプトをみてみましょう。
サンプルスクリプト
クッキー名「cinfo」、クッキーの値「現在時刻」、クッキーの有効期限「60秒」に設定するサンプルスクリプトです。
<?php setcookie("cinfo", (string)time(), time()+60); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <body> <p>クッキーの有効期限は「60秒」です。</p> <p>60秒以内に訪問したことがある場合は以下に訪問日時が表示されます。</p> <?php if( isset($_COOKIE["cinfo"]) ){ echo "あなたが以前訪問した時刻は「" . date("Y年m月d日 H時i分s秒", (int)$_COOKIE["cinfo"]) . "」ですね\n"; } ?> </body> </html>
それではサンプルスクリプトにアクセスしてみましょう。
サンプルにアクセスするとこのようなページが表示されます。このときにクッキーがセットされます。
60秒以内にページを更新、あるいは2回目以降の訪問だと…このようにクッキーの値である「訪問日時」が表示されます。
60秒経過した後、もう一度サンプルにアクセスすると……。
クッキーが削除されるので、初回訪問時のページが表示されます。