おみくじ等を作る時に、一日に何度引いても違う結果が出てしまうとつまらないですよね。
そんな時はクッキー(Cookie)を使用して、パソコンに一時的に情報を記憶させておく方法をとります。時間単位で設定できるのでとても便利な関数です。
スポンサードリンク
以前作成したおみくじをカスタマイズする
以前記事にまとめた「rand関数を使って簡単なおみくじを作ってみた」の続編という形で記事にまとめてみようと思います。
前回は、rand関数を使ってランダムに数字を取り、その数字によって「大吉」や「凶」などの画像を読み込むというものでした。
しかし、その処理だけでは更新ボタン(F5)ボタンを押すとなんども違う結果が出てしまうんです。
なので、クッキーを使用して訪問回数を記憶するという処理を加えてみようと思います。
クッキーを使って訪問回数を記憶する
まずはCookieの処理を書いてみました。
omikuji.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php $random = rand(0,2); if (!isset($_COOKIE["omikuji"])){ $count = 1; }else{ $count = $_COOKIE["omikuji"] + 1; } setcookie("omikuji", $count, time() + 10); ?> <html> <body> あなたは10秒以内に、おみくじを<?php echo $count; ?>回引いていますよ。 <img src="img/<?php echo $random;?>.jpg"> </body> </html> |
$_COOKIE[“omikuji”]が設定されていない場合は、$countに1を代入する。
$_COOKIE[“omikuji”]が設定されている場合は、$_COOKIE[“omikuji”]に1を足すという処理です。
そして、クッキーの有効期限を10秒に設定しています。
このように書けば、10秒以内に何回このおみくじを引いたかがわかるわけです。
一日に一回しかおみくじを引けないようにする
最後に書かれている「$flag = setcookie(“omikuji”, $count, time() + 10);」この部分を変更します。
「+ 10」の部分は秒なので、1日として考えると24時間 x 60分 x 60秒 = 86400秒を指定します。
omikuji2.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?php if (!isset($_COOKIE["omikuji_img"])){ $random = rand(0,2); setcookie("omikuji_img", $random, time() + 86400); }else{ $random = $_COOKIE["omikuji_img"]; } ?> <html> <body> 一日一回しかおみくじを引けません <img src="img/<?php echo $random;?>.jpg"> </body> </html> |
このように書けば、1日(86400秒)の間に何度引いても同じ結果が出るということになります。
クッキー(Cookie)を使って、訪問回数を制御する方法 まとめ
※このクッキーではありません。
クッキーの処理ができるとコンテンツの幅がとても広がりますよね。今回作成したおみくじももちろんですが、何度もプレイさせたくないゲームを作成したり、色々な事に使用できます。
Cookieは色々な場面で使用される関数ですが、ブラウザでCookieの削除をされてしまうと無効になってしまうので、そこを考慮しながらコンテンツの制作を行うようにしましょう。
ifとpostだけを使ってパスワードログインフォームを作ってみた
スポンサードリンク