クッキーの読み込み研究
次にクライアント側に保存したクッキーを読み取ってみます。
読み取るとは言ってもクライアント側のハードディスクの中身を見に行くわけではありません。クッキーがあるサーバによって保存された時、次に同じサーバに対してアクセスすると、そのサーバによって保存されたクッキーを環境変数としてサーバへ送ります。サーバ側ではクライアントからページの要求などがあった時にクッキーが合わせて送られてきているかを確認するというわけです。
クライアントからクッキーが送られてきたかどうかを調べるには、PHPで定義済みの変数「$_COOKIE」を使うことで確認できます。「$_COOKIE」は連想配列となっており、サーバに送られてきた全てのクッキーが格納された配列です。特定のクッキーの値を調べるには下記のように行います。
$val = $_COOKIE["クッキーの名前"]
例えば前のページで利用した"visited"という名前のクッキーの値を取り出したい場合には次のように記述します。
$val = $_COOKIE["visited"]
では実際に試してみます。下記ではまずクッキーの値を調べて、クッキーが送られてきていなければ初期値をクッキーに保存し、クッキーが保存されていたら値を取り出して1追加します。(isset関数については『変数が存在するかどうかの判別(isset)』を参照して下さい)。
<?php
if (isset($_COOKIE["visited"])){ $count = $_COOKIE["visited"] + 1; }else{
$count = 1;
}
$flag = setcookie("visited", $count);
?>
<html>
<head><title>PHP TEST</title></head>
<body>
<?php
print('<p>訪問回数は'.$count.'回目です</p>');
?>
</body>
</html>
上記ファイルをWWWサーバに設置しブラウザ経由で見ると下記のように表示されます。
ブラウザで再読み込みなどを行うと下記のように訪問回数が増えて行きます。