クッキーというのは、最近よく耳にする言葉ではないでしょうか。
クッキーは、Webサーバがユーザのパソコンに保存するデータのことです。
PHP では、クッキーを保存・読込む機能が備わっています。
ここでは、クッキー(Cookie)の使い方についてまとめます。
クッキー(Cookie)はどんな時に使う?
1度入力した掲示板へのコメントなどで、再び訪れて書き込む際に、
名前やメールアドレスなどを入力しなくても使うことができた経験はありませんか?
このような機能を実現するのが「クッキー(Cookie)」です。
Web サーバがユーザのパソコンにデータを保存し、
後で取り出して利用することができます。
クッキー(Cookie)の設定方法
PHP でデータをクッキー(Cookie)に保存するには、以下の関数・構文を使います。
クッキー保存の構文
setcookie(保存するクッキー名, [保存する値, 有効期限, パス, ドメイン, セキュリティ);
オプション項目 | デフォルト値 |
有効期限 | ユーザがブラウザを閉じたときまで |
パス | / (Webサーバ上の全て、ドメインのルートディレクトリ以下すべて) |
ドメイン | クッキーを送信するWebサーバのドメイン |
セキュリティ | 通常の接続(他に、https を指定可能) |
クッキーの保存
サンプル
setcookie("username", "sanachan", time() + 3600);
有効期限を「time() + 3600」とすることで、1時間(3600秒)有効なクッキーを保存できます。
クッキーの削除
サンプル
setcookie("username", "sanachan", time() - 3600);
有効期限に「time() - 3600」とすることで、過去の設定になります。
過去のクッキー(有効期限を満了)は削除されます。
クッキーの読込み
以下にまとめているスーパーグローバル変数の一つ、$_COOKIE を使って保存したデータを読込みます。
参考
スーパーグローバル変数については「変数の使い方」にまとめています。
クッキー読込の構文
$_COOKIE["保存したクッキー名"]
サンプル
echo $_COOKIE["username"];
クッキーで複数の情報を扱う方法
ここまでクッキーの使い方について説明しまし、PHP で簡単に利用できることが分かりました。
でも、「実際に保存したいデータは一つじゃないんだけど」と思った方もおられると思います。
サイトの入力フォームでも、名前、メールアドレスなど複数あるのが一般的です。
そこで最後に、複数の情報を扱う方法を紹介いたします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
<?php // クッキーを保存する setcookie("userinfo[username]", "sanachan"); setcookie("userinfo[email]", "abcd@efghijk.lmn"); setcookie("userinfo[password]", "hogehoge"); ?> <html> <head><title>複数クッキーの利用</title></head> <body> <?php if (isset($_COOKIE['userinfo'])) { foreach ($_COOKIE['userinfo'] as $key => $value) { echo "$key: $value <br />\n"; } } ?> </body> </html> |
クッキーに保存した複数のデータは、配列を扱うループ foreach で取り出すことができます。
foreach については、以下にまとめています。
注意
最初にサンプルコードのページを開いたときは、ブラウザに何も表示されません。
これは、作った直後のクッキーは、次にページがロードされるまでアクセスできないためです。
ページをリロードすることでブラウザに表示されるようになります。