基本的な操作を簡単にまとめておく。
クッキーの送信
setcookie関数を使う。失敗するとFALSEが戻る。
1 2 3 4 5 6 |
$result = setcookie('accessed', 1); if ($result) { echo "success\n"; } else { echo "failed\n"; } |
クッキーの読み取り
クッキーの値はグローバルな連想配列 $_COOKIE にセットされる。
1 2 3 4 5 |
if (isset($_COOKIE['accessed'])) { echo "accessed " . $_COOKIE['accessed'] . " times."; } else { echo "1st time access."; } |
クッキーの更新
setcookie関数を使う。クッキーが既に存在すれば上書きされる。
1 2 3 4 5 6 |
if (isset($_COOKIE['accessed'])) { $count = $_COOKIE['accessed'] + 1; } else { $count = 1; } setcookie('accessed', $count); |
クッキーの有効期限設定
setcookie関数の3番目の引数にUnixのタイムスタンプを秒単位で指定する。
1 2 3 4 5 6 7 8 |
// 特に指定しなければブラウザを閉じるまで setcookie('accessed', 1); // 現在から1分間 setcookie('accessed', 1, time()+60); // 現在から24時間 setcookie('accessed', 1, time()+(60*60*24)); |
クッキーの削除
過去の時刻を指定すると削除される。
1 |
setcookie('accessed', time()-60); |
配列
クッキーには配列を保存することもできる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
setcookie('fruit[1]', 'apple'); setcookie('fruit[2]', 'orrange'); setcookie('fruit[3]', 'pineapple'); setcookie('fruit[4]', 'grape'); print_r($_COOKIE); Array ( [fruit] => Array ( [1] => apple [2] => orrange [3] => pineapple [4] => grape ) ) |
クッキー数の制限
クッキーの数には制限がある。ブラウザ依存。以下リンクを参照。
Browser Cookie Limits
http://browsercookielimits.x64.me/
参考サイト
PHP: クッキー(Cookies) – Manual
http://php.net/manual/ja/features.cookies.php
PHP: setcookie – Manual
http://php.net/manual/ja/function.setcookie.php
PHP: $_COOKIE – Manual
http://php.net/manual/ja/reserved.variables.cookies.php