このサイトはPHPを独習する際に作成したスクリプトを基に、プログラム言語初心者のための入門講座として作成しました。PHPは初心者に親しみやすく、解りやすいプログラム言語です。これからプログラムを学ぶ人の参考になればと思います。
クッキーはおいしい?
受信と送信の仕組みで、画面上に表示させることはできました。しかし、それだけではデータは一度で消えてしまいます。 次にアクセスした時にも見ることができるように、これをコンピュータに覚えさせる仕組みが欲しいですね。 これをクライアント側(つまり見ている側)に覚えさせる仕組みがクッキーです。 ショッピングカートや、IDとパスワードを覚えるのによく使われている仕組みで、美味しそうな名前ですが、実態はデータの書きこまれたただのファイルです。
クッキーの書き込みと読み出し
次のスクリプトは、"data" という名前で $word (「おいらはプログラマー」という言葉)をクッキーファイルに保存します。time()+60*10 は60秒の10倍すなわち10分覚えていると言う意味です。
<?php $word = "おいらはプログラマー"; setcookie("data", $word, time()+60*10); ?>
次はクッキーファイルからデータを取り出す命令です。data という名前で保存されたデータを取り出します。上記の続きであれば、「おいらはプログラマー」と記述されるはずです。
<?php $word = $_COOKIE["data"]; echo $word; ?>
クッキーについて重要な点の一つは <html> よりも前に記述することです。php ファイルの1行目に <?php を書きその中でクッキーの記述をします。
書込み setcookie("名前", 内容, 記憶する時間); 読込み 変数 = $_COOKIE["名前"];
クッキー配列
クッキーは変数のように配列形式を使うことができます。クッキーの名前の部分が配列の形式になっていることに注意してください。この例ではあまり実用性を感じませんが、実際にはループと組み合わせて使用することでその実力を発揮します。
<?php $word_0 = "おいらはプログラマー"; $word_1 = "やくざなプログラマー"; $word_2 = "おいらが踊れば嵐を呼ぶぜ "; setcookie("data[0]", $word_0, time()+60*10); setcookie("data[1]", $word_1, time()+60*10); setcookie("data[2]", $word_2, time()+60*10); ?>
読み出しの場合は、[キー]を指定して個別に読み出すこともできますが、[キー]を意識しなくてもforeach を使えばすべての配列の要素を取り出すことができます。
<?php foreach ($_COOKIE['cookie'] as $name => $value) { echo "$name : $value <br>"; } ?>
実行結果は次のようになります。
0:おいらはプログラマー 1:やくざなプログラマー 2:おいらが踊れば嵐を呼ぶぜ
|