基礎から解る!PHP入門講座

サイト移転のお知らせ   ⇒ 基礎から解る!PHP入門講座

当サイトはついに移転することになりました。新URLは  http://www.flzphp.com/ です。
今後とも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:おいらが踊れば嵐を呼ぶぜ

疑問点はここで検索しよう!

※当サイトにて使用されている写真・文章はすべて 許可なく使用することを禁止いたします。