アプリケーション
ここではHTTP関数のうちの「クッキー」について解説します。 クッキーとはサーバーにアクセスしてきたブラウザに対し、その情報等を一時的に保存しておく仕組みのことです。 ブラウザがいつ訪問したのか、何回目の訪問なのかなどの情報を保存します。 ユーザ側のPCに保存するため、各ユーザごとに固有の情報を持ち、ユーザの識別などに使うことができます。 WEB上の掲示板などで一度書き込みを行うと、その情報がクッキーに保存され 次回から名前やURLなどを再入力する必要がありません。 ショッピングサイトにおいても、クッキーを使って現在のカート内の商品などを保存して 多くの商品を一度に購入することができるわけです。
setcookie(クッキー名[,クッキーの値[,有効期限[,パス[,ドメイン[,セキュア]]]]])
PHPではsetcookie関数を使ってクッキーを使用します。 setcookie関数では、1つ目の引数でクッキー名を指定します。 以降、有効期限にタイムスタンプを、パス・ドメインには それぞれ利用する対象のパス・ドメインを、 セキュアにはクッキーをSSL通信時にだけ送信するかを決めるTRUE/FALSEのどちらかを指定します。 setcookie関数により発行されたクッキーはブラウザのリクエストヘッダーに含まれているので $_COOKIEのグローバル関数を書くだけで簡単に取得できます。
$_COOKIE[ "クッキー名" ]
では実際にsetcookie関数を利用したサンプルを見てみましょう。
<?php $time = $_COOKIE["firstphp"]; if(!isset($time)){ $time = 0; }else{ $time++; } setcookie("firstphp", $time, time()+60*60); ?> <html> <head> <title>cookie.php</title> </head> <body> <?php if($time==0){ print("はじめまして〜"); }else if($time == 1){ print("2回目ですね!"); }else{ print("たくさん来てくれてありがとう〜"); } ?> </body> </html>
ここではクッキーを保存してユーザの訪問回数に応じて表示を変えています。 変数timeでは、値が入っていないときは初めての訪問として0を代入して、 値が入っているときは変数をインクリメントして訪問回数を計算しています。
$time = $_COOKIE["firstphp"];
$_COOKIEのスーパーグローバル関数でクッキー名firstphpのクッキー値を呼び出しています。 初めてページを読み込みを行ったときは、firstphpというクッキーは存在していませんので、 setcookie関数はFALSEを返します。
setcookie("firstphp", $time, time()+60*60);
firstphpというクッキー名、ユーザの訪問回数をクッキーの値として持ち 有効期限を1時間としています。