今回はphpプログラムのクッキーと言われているものについて勉強してみました。

クッキーとは??

クッキーとは、ウェブサーバ側からクライアントに送られるデータのことで、任意の一定時間クライアント側で保存されるものです。
例えば、会員制のサイトで「一週間ログインしたままにする」などの機能はクッキーによる恩恵といえるでしょう。
クッキーはsetcookie関数を使用します。

setcookie

第1引数にクッキー名、第2引数に保存する値、第3引数に有効期限 を書きます。
有効期限はUnixタイムスタンプ秒で設定していきます。
例えば、、、
「time() + 60」ならば現在時刻から一分後に有効期限が切れてクッキーが削除されます。
クッキーにセットされた値は変数「$_COOKIE」に配列形式で格納されます。
格納された値は$_COOKIE[クッキー名]により取得できます。

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

コード

index.php

<body>
<?php
   setcookie('nice', 'nicepaper', time() + 60);
   echo "クッキーをセットしました。<br> ";
 ?>
<a href="page2.php">page2へ</a>
</body>

page2.php

<body>
<?php
   if (isset($_COOKIE['nice'])) {
     echo "クッキーは{$_COOKIE['nice']}です。";
   } else {
     echo "クッキーはセットされていません。";
   }
 ?>
</body>

実行結果

index.php

60秒経っていない場合

クッキーはnicepaperです。

60秒以上経っている場合

クッキーはセットされていません。

解説

60秒経ったらクッキーが削除されてメッセージが変わります。
よくログインが必要なシステムを利用している時にしばらくそのままパソコンを放置して、戻るボタンを押したり操作を始めると「期限切れ」のような表示がなされますが、おそらくクッキーが原因と思われます。
setcookie関数で「nice」という名前のクッキーに「nicepaper」という値を格納して、現在時刻+60秒後までを有効期限としてセットしています。

page2.phpでは、isset関数でクッキー「nice」が存在するか調べ、存在していたらクッキーの値を表示させます。
isset関数は、引数で指定した変数が存在するかどうか調べる関数です。

以上

最終更新:2015年10月25日 01:30
添付ファイル