練習問題

練習問題を通して本レッスンで学んだことを確認してみましょう!

問題1

クッキーを使って、訪問回数を記録するプログラムを作ってみてください。

ヒント

クッキーを記憶するには、「setcookie()」を、参照するには「$_COOKIE」を使うのでした。

答え

答えは以下のようになります。クッキーの値を調べ、値を足して、記憶するという一連の流れは大丈夫でしょうか?さらに、クッキーはHTTPのヘッダで指定されるので、setcookie()より以前には出力を行わないということも大切です。

file:1-counter.php

<?php
// 既存の値を調べる
$cnt = isset($_COOKIE["cnt"]) ? $_COOKIE["cnt"] : 0;
// 値を足す
$cnt++;
// 記憶する
setcookie("cnt", $cnt, time() + (60*60*24*365));
// 結果を表示する
echo "<p>{$cnt}回目の訪問ありがとうございます!</p>";
画面
画面

問題2

今度はセッションを使って、訪問回数を記録するプログラムを作ってみてください。

ヒント

セッションを開始するには、「session_start()」を実行する必要がありました。それ以後は、「$_SESSION」変数を使って、値の取得と設定が可能です。

答え

セッションを使う場合のプログラムは、以下のようになります。

file: 2-counter-session.php

<?php
session_start();
// 既存の値を調べる
$cnt = isset($_SESSION["cnt"]) ? $_SESSION["cnt"] : 0;
// 値を足す
$cnt++;
// 記憶する
$_SESSION["cnt"] = $cnt;
// 結果を表示する
echo "<p>{$cnt}回目の訪問ありがとうございます!</p>";
画面
画面

以上、クッキーやセッションの使い方をテストするための練習問題を解いていただきました。しかし、クッキーもセッションも、保存期間は一時的なものとなります。永続的に訪問回数を数えるには、ログインなどの仕組みを使って、データベースやファイルへ保存するのが良いでしょう。