クッキーを操作する
戻る


[4]クッキーを操作する

【HTTP関連の関数:setcookie関数】

クッキーをクライアントのブラウザにSETするには「 setcookie関数 」を使い、クッキーを受け取るには「 定義済み変数の$_COOKIE($HTTP_COOKIE_VARS) 」を 使います。

cookieをクライアントのブラウザにセットするには以下のようにHTMLを出力する前に行わなければなりません。 HTMLヘッダを出力後にこの関数を使うとエラーになります。
では、実際にクッキーをセットしてセットしたクッキーを読み込む簡単なプログラム を作成してみましょう。

このプログラムはソースをコピーしたりせずに、ご自分でタイプしてみてください。
また、ここ以降はそれぞれの関数についての個別解説はしませんので、 出てくる関数についての詳細はマニュアルを参考にしてください。
<?php
///////////////////////////////////////////
//PHPプログラムの動作テスト
//クッキーの操作
///////////////////////////////////////////

//情報を保存するCookieの名前
$cookie_id="wspri_id";

//サイトの名前
$name="Webサーバプログラミング研究所";

//管理者のメールアドレス
$mail="aaa@aaa.jp";

//サイトのドメイン
$dns_name="wspri.dip.jp";

if(!isset($HTTP_COOKIE_VARS["$cookie_id"])){
    //格納情報を配列にする
    $cookvalue = implode(",", array($name,$mail,$dns_name));
    //クッキーの有効期限time()+日数*時間*一時間の秒数[例]time()+1*24*3600では24時間という事
    $timesid=time()+1*1*20;
    //とりあえず20秒で期限切れに設定
    setcookie ("$cookie_id",$cookvalue,$timesid);
    $msg="セットされたクッキーがない為、新しくセットしました!";
}
else{
    list($named,$maild,$dnsnamed) = explode(",", $HTTP_COOKIE_VARS["$cookie_id"]);
}
echo ("
    <html>
    <body>
");
if(isset($msg)){
    print $msg;
}
else{
    print "クッキーを読み込みました!<hr>";
    print $named."<br>";
    print $maild."<br>";
    print $dnsnamed."<br>";
}
echo ("
    </body>
    </html>
");
?>

クッキーのセット方法はこれだけです。簡単でしょ?
格納する変数を増やせばいろんな情報を入れられます。

【setcookieの解説】
implode()は配列を作成する関数です。配列を作成して$cookvalueに格納し、 クッキーにセットしています。
$timesid=time()+1*1*20;はクッキーの有効期限をセットしています。
また、読み込み時にはクッキーが配列になっていますので、セットした値を explode()関数で、","を境に分けてlist()関数でそれぞれの変数に代入しています。
クッキーは例えば訪問回数の管理や、ログイン情報の保守などに使われます。

この項はこれで終わりです。あとはマニュアルをみて拡張していってくださいね。



TOPへ