端くれプログラマの備忘録 PHP [PHP] クッキーの基本的な使い方

[PHP] クッキーの基本的な使い方

基本的な操作を簡単にまとめておく。

クッキーの送信

setcookie関数を使う。失敗するとFALSEが戻る。

$result = setcookie('accessed', 1);
if ($result) {
    echo "success\n";
} else {
    echo "failed\n";
}

クッキーの読み取り

クッキーの値はグローバルな連想配列 $_COOKIE にセットされる。

if (isset($_COOKIE['accessed'])) {
    echo "accessed " . $_COOKIE['accessed'] . " times.";
} else {
    echo "1st time access.";
}

クッキーの更新

setcookie関数を使う。クッキーが既に存在すれば上書きされる。

if (isset($_COOKIE['accessed'])) {
    $count = $_COOKIE['accessed'] + 1;
} else {
    $count = 1;
}
setcookie('accessed', $count);

クッキーの有効期限設定

setcookie関数の3番目の引数にUnixのタイムスタンプを秒単位で指定する。

// 特に指定しなければブラウザを閉じるまで
setcookie('accessed', 1);

// 現在から1分間
setcookie('accessed', 1, time()+60);

// 現在から24時間
setcookie('accessed', 1, time()+(60*60*24));

クッキーの削除

過去の時刻を指定すると削除される。

setcookie('accessed', time()-60);

配列

クッキーには配列を保存することもできる。

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