1つのクッキーに複数の値を格納する
広告
1つのサーバからクライアントに送ることが出来るクッキーは1つだけではありません。例えば下記のように複数のクッキーを送ることが出来ます。
setcookie("user", "yamada");
setcookie("pass", "pass");
ただし、クライアントは1つのサーバから受け取ることが出来るクッキーは最大20個まで、全体でも合計300個までのクッキーしか保持できないことになっています。その為、多くのクッキーを利用したい場合には工夫が必要となります。
20個以上のクッキーを送りたい場合には、クッキー名を配列のように扱い、配列の各要素に値をセットします。
setcookie("buy[1]", "Televison");
setcookie("buy[2]", "Video");
setcookie("buy[3]", "Audio");
このようにすると、クッキー名としては「buy」だけが使われますので1つしかクッキーを消費しません。
取り出す時は次のように行います。
$val = $_COOKIE['cookie']; print($val[1]); print($val[2]); print($val[3]);
サンプルプログラム
では試してみましょう。
<?php
setcookie ("buy[1]", "Televison");
setcookie ("buy[2]", "Video");
setcookie ("buy[3]", "Audio");
?>
<html>
<head><title>PHP TEST</title></head>
<body>
<?php
if (isset($_COOKIE["buy"])){
$val = $_COOKIE["buy"];
print('<p>');
print('購入したものは下記の通りです<br>');
print($val[1].'<br>');
print($val[2].'<br>');
print($val[3]);
print('</p>');
}else{
print('<p>値をセットしました</p>');
}
?>
</body>
</html>
上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。
ブラウザで再読み込みをすると次のように表示されます。
( Written by Tatsuo Ikura )
PHPBook