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

- PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
- PHPによるWebアプリ開発の基礎・基本テクニックを学べる


Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!



初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
変数名/関数名にもう悩まない!


- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる


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に登録されていることが確認出来ます。


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


確認する時の注意点として、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ヶ月を秒数で求めることが出来ます。