クッキー(Cookie)について
クッキーについて勉強しよう


いいですね!クッキーを使えると、ホームページの作成でいろいろできますよ♪


名前がいいよね 可愛くて、おいしそう


いちじくちゃん。おやつはさっき食べたでしょう。 確かにクッキーの語源は、お菓子のクッキーからきている説もありますが。


それでは、クッキー(Cookie)とはWEBページが利用者がページに来た記録などを判断するために、利用者のPCに保存する情報ファイルです。


例えば、PHPで「setcookie」関数が実行されると、そのページにアクセスしている人のPCにクッキーが送信され、保存されます。


これに比べて、利用者のPCではなくサーバ側に保存する方法を「セッション」といいます。 用途は同じようなことに使われますね


ふむ。


Edgeだとブラウザの右上の横三点リーダ「・・・」から「設定」、左側にある「Cookie とサイトのアクセス許可」、「Cookie とサイト データの管理と削除」、「すべてのCookie とサイト データを表示する」と進んでいくと現在PCに保存されているクッキーを見ることができますよ。


URLに「edge://settings/siteData」と入力しても、この画面は見ることができます。


同様にchromeブラウザでも「chrome://settings/content/all」と入力して、Enterを押せば、クッキーの見れるページに行くことができます。


では、クッキーを作ってみましょう。一般的なPHPでのクッキーを使う時の書き方は以下のようになります。


<?php setcookie("お試しクッキー♪", "いちじく", time() + 3600); ?>
「お試しクッキー♪」がクッキーの名前で、「いちじく」がクッキーに設定する値(コンテンツ)、「time() + 3600」がクッキーの有効期限で、自分で自由に設定することができます。


有効期限は秒単位の指定でここでは3600秒。。。60分を表していますね。


クッキーの有効期限は省略可能ですが、省略したり、「0」を設定した場合は、ブラウザを閉じるとクッキはー削除されます。


では、これを実行して、、、 はい!クッキーができあがりました。


コンテンツに「いちじく」って入るんじゃないの?私こんな名前じゃないよ


%E3%81%84%E3%81%A1%E3%81%98%E3%81%8F


わっ!? よく発音できますね 壊れた機械音声みたい


どうやら「コンテンツ」に日本語を使用すると、エンコードされて文字化けのように見えてしまうんですね。もう一度、クッキーの値を「itijiku」にして実行してみましょう。


<?php setcookie("お試しクッキー♪", "itijiku", time() + 3600); ?>
一つ注意なのが、この「setcookie」関数は、そのページで一番最初に処理されなくてはいけなくて、<html> や <head> タグだけでなく、空白も入ってはいけないルールなんです。


環境にもよるのでしょうが、私は一行の改行が入っただけで、クッキーが作られませんでした。


もっと詳しく調べたい時は、下のPHPの公式マニュアルを見てみるのもおススメです。


https://www.php.net/manual/ja/function.setcookie.php
お名前