クッキーを利用する[COOKIE]

2016年1月30日

PHP

クッキーを利用すると、セッションと同様に複数ページに渡って同じデータを使い回し表示させることができます。

 

セッションと大きく違う点は、データはクライアント側のハードウェアに保存される点です。通販サイトなどの閲覧履歴などに利用されています。クライアント側にデータを保存することによって、ユーザを特定することができます。

 

 

スポンサーリンク

 

 

仕組み


 

クライアントがクッキーの設定されているページを開くと、サーバ上でクッキー(名前と値)が発行されます。ブラウザはそのクッキーをテキストファイルとしてクライアント側に保存します。クッキーが保存されていれば、ブラウザはリクエストヘッダーと一緒にそのデータをサーバへ送り、利用することができます。

 

クッキーには一つのサイト(ドメイン)で20個まで、一つにつき4kバイトまで保存することができます。値は平文で保存されるので、セキュリティ面においてもクレジットカード番号のような重要な情報は保存しないようにします。

 

 

下記のデモ画面では、はじめのページ(cookie1.php)を訪れると、クッキー(名前:name)に「ウェブの葉」という値が設定されます。次に画面(cookie2.php)に進むと、クッキーに保存された「ウェブの葉」が表示されます。破棄画面(cookie3.php)に進むとクッキーが破棄されます。

 

デモ画面

 

 

手順


 

cookie1.php

 

5行目

nameという名前の持つクッキーに、$yournameの値を設定しています。time()+10は、クッキーがデータを保持する時間を設定できます。今回は動作が分かりやすいように10秒という短い時間に設定しています。

 

またサーバ上でクッキーを有効にしたいディレクトリを指定することができます。下記のコードでは/以下のディレクトリでnameクッキーが利用できます。デフォルトではそのファイルのあるディレクトリ以下となっています。

 

setcookieはHTMLの出力の前に記述して下さい。

 

参照ページ

http://php.net/manual/ja/function.setcookie.php

 

 

cookie2.php

 

5行目

前ページで保存したクッキーの値「ウェブの葉」を表示させています。クッキーの保存期間は10秒なので、10秒後に画面をリロードすると9行目(else)以降に分岐されます。

 

 

cookie3.php

 

3行目

name名のクッキーを破棄しています。値を空にし時間をマイナスに指定することによってクッキーを消去することができます。

 

またcookie1.phpで説明したように、もしクッキーを利用できるパスを指定していた場合は、消去する場合も同じパスを指定しておかないと消去することができません。

 

 

関連ページ

セッションを利用する[SESSION][PHPSESSID]

 

 

 

LINEで送る
Pocket

Copyright © 2019 思考の葉 All Rights Reserved.  プライバシーポリシー