クッキーを利用すると、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 "クッキーの保存に失敗しました!"; } ?>