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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。