Webアプリケーションでは、一貫して何かの情報を保持し続けるようなことがよくあります。例えば、ログインした情報を保持し続けないと、ページどうしたら誰だかわからなくなってしまいますね? こういう「このユーザーの情報はこうだ」ということを保持し続けることは、Webアプリケーションを作成する上でとても重要です。
そのための方法は幾つかありますが、「Webブラウザ側に情報を保管する」という方法で利用されるのが「
クッキー」です。
クッキーというのは、ブラウザに保存できる非常に小さなデータです。
クッキーは、Webサイトごとに細々とした情報がブラウザ内に保管できます。ここにデータを保管しておけば、必要に応じてそのデータを取り出し利用できるわけです。
この
クッキーは、それほど大きなデータは入りません。注意したいのは、「保管できる
クッキーの数や最大サイズは、ブラウザによって異なる」という点です。だいたい、最低ラインとして「1サイトに付き最大
20個、
4096バイトまで」という条件は現在のどのブラウザもクリアしているはずですので、これ以下の分量であれば問題ないでしょう。
クッキーに大きなデータを保管するのは勧められません。ブラウザによって保存しきれない場合がある、ということは忘れないでください。
この
クッキーを利用する場合、「読み」と「書き」でアプローチが異なるので注意してください。まずクッキーの書き込み(保存)ですが、これは「
setcookie」という関数を利用します。これは、
setcookie( 名前 , 値 , 破棄する日時 );
このような形で指定をします。名前は、保存する
クッキーの名前ですね。これは適当につけます。そして第2引数が保存する値です。3番目の引数は、「その
クッキーをいつ破棄するか」の指定です。これは、破棄する日時を示す
タイムスタンプ(覚えてます? 1970年の元旦から計算した経過秒数の値でしたね)を指定します。
この破棄する日時の指定は、省略することもできます。省略したり、ゼロを指定すると、その
クッキーはブラウザ終了時に自動的に破棄されます。
続いて
クッキーの読み込みです。これは「
$_COOKIE」というPHPのシステムが用意する連想配列から読み取ることができます。これは、
$変数 = $_COOKIE[ クッキーの名前 ];
このようにして、名前を指定して
クッキーが取り出せます。注意して欲しいのは、「
$_COOKIEの値を変更しても、
クッキーを変更することはできない」という点です。これは、値を読むだけのものです。
$_POSTなどと同じです。