PHP

【PHP】Cookieの有効期限を設定・変更する方法

本記事では、PHPでCookieの有効期限を設定・変更する方法について解説しています。

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
Kindle版
レビュー
(Amazon)
(168件)

参考書が苦手な人はUdemyの動画がおすすめ
ちゃんと学ぶ、PHP+MySQL(MariaDB)入門講座

動画情報
作成者たにぐち まこと
学習時間11時間
受講者数24,526人
レビュー (4,518件)
動画の詳細はこちら

Cookieの有効期限を設定・変更

Cookieの有効期限を設定・変更するには、Expires / Max-ageに有効期限をセットします。Expires / Max-ageに有効期限をセットする方法は以下のとおりです。

<?php
setcookie('name', value, [
    'expires' => time,
]);
?>

第三引数に連想配列を設定し、keyに「expires」を指定し値にはCookieの有効期限を秒単位でセットします。

実際にCookieに有効期限を持たせ、有効期限を過ぎた時にCookieが消されるかを確認してみましょう。

<?php
setcookie('COUNT', 1, [
    'expires' => time() + 10,
]);
?>

有効期限10秒のCookie(COUNT)を作成しました。これをCookie情報で確認していきましょう。

まずはCOUNTという名前でCookieに登録されていることが確認出来ます。

有効期限を持ったCookie
有効期限を持ったCookie

10秒後にページをリロードすると、Cookie情報からCOUNTが削除されていることが確認出来ました。

有効期限が切れたCookie
有効期限が切れたCookie

確認する時の注意点として、Cookieをセットするコードを残した状態でリロードすると再度Cookieに登録されてしまいますので、確認する時はコードを一度削除またはコメントアウトしてからリロードしてください。

有効期限の設定値を紹介

1日有効なCookie

有効期限が1日のCookieを作成する方法は以下のとおりです。

<?php
setcookie('COUNT', 1, [
    'expires' => time() + 60 * 60 * 24,
]);
?>

最初の60秒は1分を表し、それに対して60をかけることにより1時間になります。一日は24時間なのでさらに24をかけてあげることにより1日を秒数で求めることが出来ます。

1ヶ月有効なCookie

有効期限が1ヶ月のCookieを作成する方法は以下のとおりです。

<?php
setcookie('COUNT', 1, [
    'expires' => time() + 60 * 60 * 24 * 30,
]);
?>

60 * 60 * 24は先ほど解説した通り、1日を表します。1ヶ月が30日と仮定した場合、その値に30をかけてあげることによって1ヶ月を秒数で求めることが出来ます。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村