クッキーの概要は下記にて確認のこと
クッキーを受信する
$_COOKIE['クッキー名']
クライアントのブラウザからサーバに送信されたクッキーは「$_COOKIE」が受信し管理する。受診した値を参照する場合はキーにクッキー名を指定する。
クッキーを送信する
setcookie(クッキー名,値,有効期限)
- setcookie関数により、ブラウザに送信するクッキーを用意することができる。クッキー送信準備が整うとtrueを、問題が発生した場合はfalseを返す。
- 有効期限を省略した場合、「ブラウザを終了するまで」を有効期限とする
エラーになるケース
- php.iniの設定が「output_buffering=Off」の場合
- php.iniの設定が「output_buffering=4096」のように設定されている場合に、4096バイト以上の文字出力以降でsetcookie関数を呼び出す
- setcookie関数よりも前にHTMLタグを記述する。(HTMLの記述よりも前にPHPブロックを記述してsetcookie関数を呼び出すこと。)
- setcookie関数よりも前に文字出力
- setcookie関数を含む<?phpの前に空白行がある。
- UTF-8の文字コードをBOM付きで保存した場合
有効期限の設定
現在時刻から計算する関数
time()
現在時刻のタイムスタンプを取得する。秒数を足すことで現在時刻の指定時間後を指定することができる。
指定時刻
mktime(時,分,秒,月,日,年)
例
↓ ↓ ↓
イメージ
クッキー利用時の注意
- クッキーとして保存できるデータ容量はWebブラウザに依存する。殆どのブラウザが5KB前後までしか扱えないため、容量の大きなデータは扱えない。
- クッキー情報はWebブラウザから簡単に見ることができる。また、クッキーの値は常にネットワーク上を流れるため盗聴される危険や、悪意あるプログラムによってユーザPCから流出することも考えられる。重要な情報は扱わないこと。
- クッキーはブラウザ側に保存され、一部のブラウザではクッキーの値を自由に書き換えることができる。例えば、ショッピングカートの商品価格をクッキーの値で受け渡ししている場合、値段を書き換えられる可能性がある。システム根幹にかかわる情報は扱わないこと。
ブラウザの検証ツールでクッキーを確認
保存されているクッキーの詳細を確認
クッキーの削除
ユーザ側のブラウザに保存されるクッキーをサーバから直接削除することはできない。そのため、クッキーを削除するにはすぐに有効期限が切れるクッキーをユーザ側に渡して対応する。