戻る

クッキーにデータを保存する

setcookie()関数

クッキーを利用すると、Webサーバ側のPHPスクリプトで扱っている情報を、Webブラウザを利用しているユーザ側のパソコンに保存できます。クッキーを読み込むことによって、異なるページ間でデータの受け渡しを行ったり、後日そのデータを再利用したりできます。

クッキーにデータを保存するためにはsetcookie()関数を使います。3つの引数には、それぞれ以下のデータを指定します。

第1引数
「任意の名前」を設定します。クッキーに保存したデータを読み込む際の識別に使います。

第2引数
「クッキーに保存するデータ」を指定します。「クッキー上のデータ名=保存する値」を1セットとして、「&」でつなげて列挙します。クッキー上のデータ名は任意であり、PHPの変数名と同じにする必要はありません。

第3引数
「ローカル側のクッキーの保存期限」を秒単位で指定します。1週間の有効期限を設定したいのであれば、「現在日数+(7日×24Hr/日×3600sec/Hr)という値を指定します。この有効期限を過ぎるとクッキーは使えなくなります。この引数を省略したい場合、Webブラウザを終了すると自動的に保存済みクッキーが削除されます。なお、現在日時はtime()関数によって取得できます。

setcookie()関数はクッキーの保存に成功するとTrue、失敗するとFalseを返します。また、setcookie()関数はリダイレクトと同じく、すべてのHTMLの送出の前に実行しなければなりません。この関数を呼び出す前にprint()文などの画面出力があるとエラーとなるので、実行タイミングには注意が必要です。

<?php
header("Content-type: text/html; charset=utf-8");

$data1 = 10;
$data2 = "PHP:Hypertext Preprocessor";

if(setcookie("mycookiedata","ck_data1=$data1&ck_data2=$data2",time() + (3600 * 24 * 7))){
	echo "データをクッキーに保存しました!";
}
else{
	echo "クッキーの保存に失敗しました!";
}
?>

inserted by FC2 system