【PHP授業九日目】クッキー・セッション(続き2)
クッキー・セッション(続き2)
●クッキー使われてるところ
・ホームページに訪れたことをきっかけに、特定の広告を繰り返し目にするようになるという現象
・リターゲティング広告という
●クッキーの確認はsetcookieの後で行う
●同じサーバーなら、アクセス数共有される
●クッキーはクライアント側に保存される
●クッキーの削除方法
・クッキーを削除するときは少し特殊で、サーバーからクライアント側のクッキーを削除するのは無理
・すぐに有効期限切れになるクッキーを発行
・クライアント側にあるクッキーを上書きした後、即有効期限切れになってクッキーを消滅する
●おみくじでクッキー利用すれば、その日の間は結果が変わらないおみくじ作れる
■クッキー発行時の注意点
・setcookie関数は出力処理の後で呼び出すことができない
●「UTF-8」じゃない「UTF-8 withBOM」みたいな文字コードにしておくとエラーになる(テラパッドだと「UTF-8 M」)
● BOM(Byte Order Mark)
セッション
●セッションとは
・クッキーを使ってユーザを認識し必要なデータをサーバ側に保存して使用する
・データがサーバ側にあるので、悪意あるユーザにデータ改ざんされる心配ない
・ネットワーク上に値が流れないので、盗聴される心配なく、クッキーに比べて安全性が高く、データ量の制限も実質ない
●これ呼び出せばすぐに使える
テスト
03_test1.php
03_test2.php
02_session.php
まとめ
■クッキー発行時の注意点
・setcookie関数は出力処理の後で呼び出すことはできない
・session_start関数も内部でクッキーを発行しているので出力処理後にsessin_start関数を呼び出すことはできない
※php.intのoutut_bufferingにバッファの数値が指定されている時は多少の出力はOK
■クッキー
クライアント側に値が保存される
◇メリット
・長期間保存できる
・ページ間で値を共有できる
◇デメリット
・安全性が低い(改ざんされたり、消去の可能性あり)
■セッション
サーバ側に値が保存される
◇メリット
・ページ間で値を共有できる
・安全性が高い
◇デメリット
・長期間保存ができない
●setcookie()より前では出力(echo)しないよう気を付ける