ログインを必要とするWebページを利用していると、
ユーザの情報を一時的に保管し、サービスに必要な情報や値などを保存する方法です。Sessionはサーバ側に保存するのに対し、Cookieはクライアント側に保存します。
今回Cookieを作るということで、クライアント側のCookieを確認していきたいと思います。
クライアント側ということは、各自のパソコンにそのファイルが保存されているはずです。IEを中心に見ていきましょう。 IE11の場合[設定]→[全般(タブ)]→[閲覧の履歴の設定ボタン]→[ファイルの表示]を押してみましょう。すると、
C:\Users\名前\AppData\Local\Microsoft\Windows\INetCache
に様々なファイルが保存されていると思います。その中でCookieと見えるのがCookieファイルです。
実際にダブルクリックをしてみるとその内容を見ることができます。
要はこのファイルの作り方を学ぶということです。
コードを書きますが、
まだ確認しにいかないでください。確認用のconfirm.phpの方を先に行き挙動を確認してみてください。
発行(index.php)
<?php
$issue = setcookie("visited",1);
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>クッキーの発行</title>
</head>
<body>
<?php
//返り値はセットされていれば1なので
if($issue){
print '<p>発行されました。</p>';
}else{
print '<p>発行失敗しました。</p>';
}
?>
<a href="confirm.php">クッキーの内容確認</a>
</body>
</html>
確認(confirm.php)
<?php
//もしクッキーが発行されていたら、その値を取得し一つたす。
if(isset($_COOKIE["visited"])){
$cnt = $_COOKIE["visited"] + 1;
}else{
$cnt = 1;
}
//クッキーが発行されていれば再びその値をクッキーに埋め込む。
if(isset($_COOKIE["visited"])){
setcookie("visited", $cnt);
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>訪問回数</title>
</head>
<body>
<p>訪問回数は<?php echo $cnt;?>回です。</p>
</body>
</html>
先にconfirm.phpの方を確認しに行ってください。どんだけ更新ボタンを押しても1回のままです。
そこで、一度index.phpの方にいってから再びconfirm.phpに行くと更新ボタンを押していくと2回、3回と増えていくはずです。
setcookieという関数を利用して発行することと、cookieの発行はグローバル変数$_COOKIE["名前"]というような感じで使っていくということです。
以上