2022.01.17 システム
【PHP】cookieに値を設定する際のポイント
こんにちは。
今回はPHPでcookieに値を設定する際のポイントについてご紹介いたします。
基本的な設定
まず、cookieに何らかの情報を保存する場合は、以下のコードを記述します。
setcookie(保存するキーの名前, 保存する値, cookieの有効期限);
サンプルコード(cookieの保存)
setcookie("sample", "サンプル", time() + 60);
上記のコードを実行すると、cookie内に「sample」の名前(キー)で「サンプル」の文字列(値)が保存されます。
(※有効期限は1分で設定)
cookieに保存した値を取り出す場合は以下のコードを記述します。
$_COOKIE[“保存したキーの名前”];
サンプルコード(保存した値の取得)
echo $_COOKIE["sample"];
<実行結果>
サンプル
有効期限を設定する際のポイント
有効期限を設定する場合はtime関数で現在のタイムスタンプ情報を取得し、有効期限(秒)を加算します。
最初のサンプルコードでは「time() + 60(秒)」を設定しましたので、有効期限は1分となります。
有効期限を1時間とする場合のサンプルコード
setcookie("sample", "サンプル", time() + 3600);
1時間 = 3600秒なので、「time() + 3600(秒)」の設定を行いました。
上記のように秒数がすぐ分かるものについては直接指定できるかと思いますが、有効期限を1週間 ~ 2週間といった長期間としたい場合、秒数を都度計算するのは大変なので、以下のような形で指定します。
有効期限を1週間とする場合のサンプルコード
setcookie("sample", "サンプル", time() + 60 * 60 * 24 * 7);
上記のような形で加算する秒数を計算式にすることで、簡単に期間の設定が可能です。
※60(秒) * 60(分) * 24(時間) * 7(日) = 1週間の秒数
2週間にしたい場合は「7」⇒「14」に変更するだけで期間の変更が簡単に反映できますね。
cookieの適用範囲はページ単位となります。
これまでのサンプルコードを記載した場合、記載したページ内でのみ保存したcookieの値を取得できますが、別のページでは取得ができません。
cookieの値をページ全体で取得できるようにしたい場合は、以下のコードを記述します。
ページ全体でcookieを保存する場合のサンプルコード
setcookie("sample", "サンプル", time() + 60, "/");
有効期限の後ろに「”/”」を追加することで、ページ全体で有効なcookieの保存ができます。