今回はphpプログラムのクッキーと言われているものについて勉強してみました。
クッキーとは、ウェブサーバ側からクライアントに送られるデータのことで、任意の一定時間クライアント側で保存されるものです。
例えば、会員制のサイトで「一週間ログインしたままにする」などの機能はクッキーによる恩恵といえるでしょう。
クッキーはsetcookie関数を使用します。
第1引数にクッキー名、第2引数に保存する値、第3引数に有効期限
を書きます。
有効期限はUnixタイムスタンプ秒で設定していきます。
例えば、、、
「time() + 60」ならば現在時刻から一分後に有効期限が切れてクッキーが削除されます。
クッキーにセットされた値は変数「$_COOKIE」に配列形式で格納されます。
格納された値は$_COOKIE[クッキー名]により取得できます。
http://php.net/manual/ja/function.setcookie.php
<body> <?php setcookie('nice', 'nicepaper', time() + 60); echo "クッキーをセットしました。<br> "; ?> <a href="page2.php">page2へ</a> </body>
<body> <?php if (isset($_COOKIE['nice'])) { echo "クッキーは{$_COOKIE['nice']}です。"; } else { echo "クッキーはセットされていません。"; } ?> </body>
クッキーはnicepaperです。
クッキーはセットされていません。
60秒経ったらクッキーが削除されてメッセージが変わります。
よくログインが必要なシステムを利用している時にしばらくそのままパソコンを放置して、戻るボタンを押したり操作を始めると「期限切れ」のような表示がなされますが、おそらくクッキーが原因と思われます。
setcookie関数で「nice」という名前のクッキーに「nicepaper」という値を格納して、現在時刻+60秒後までを有効期限としてセットしています。
page2.phpでは、isset関数でクッキー「nice」が存在するか調べ、存在していたらクッキーの値を表示させます。
isset関数は、引数で指定した変数が存在するかどうか調べる関数です。
以上