- ベストアンサー
Cookieの承諾と個人情報保護法についての疑問
- 楽天などの企業ではCookieを使うのにユーザーの承諾を得ていますが、アマゾンでは見かけたことがないです。個人情報保護法的にも努力義務があると書かれていました。
- アマゾンではカートに商品を数ヵ月以上放置しても消えることはありません。アマゾンほどの企業でが法律を無視するとは考えにくいので、アマゾンではCookie以外でカート機能を作っているのでしょうか?
- こちらの、Cookitest5を参考にしてみたのですが、セットされてもリロードしないと表示されません。meta refreshなどで自動的にロードさせるもしくは一発で表示させる方法があれば教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
$my_cookie=$_COOKIE['cookie']; ↑ミス $my_cookie=$_COOKIE; まるごとなので、要素は省略でOKです。
その他の回答 (1)
- AsarKingChang
- ベストアンサー率46% (3467/7474)
(2)についてのみ回答します。 setcookieは、そのPHPのレスポンスに混ざっています。 そのレスポンスをブラウザが受け取り、ブラウザローカルに クッキーが形成されます。 それを次のリクエストに混ぜて送ってくるという流れです。 なので、送り出す前のPHPが読み取れないのです。 要するにデータは「ユーザーのブラウザ内にあるから」 ってことです。 んじゃ?どうすればいいか? /* 起動時のクッキーを覚えさせる */ $my_cookie=$_COOKIE['cookie']; function my_setcookie($key,$val) { /* $my_cookieはスーパーグローバルではないので、オーバーライド */ global $my_cookie; setcookie($key,$val); $my_cookie[$key]=$val; } function my_getcookie($key) { /* $my_cookieはスーパーグローバルではないので、オーバーライド */ global $my_cookie; return($my_cookie[$key]); } 現セクション内に仮想のクッキーを入れてしまえばOK スーパーグローバルとグローバルが混在してしまうので、 理想は、classでまとめて$this->cookieスタイルの方が、 コンストラクタで起動時のクッキーも食えるので便利かと。 ひとまず、これで、(2)の問題だけは 解決できますよ。
お礼
ありがとうございます。 わかりやすかったです。
お礼
ありがとうございます。 助かりました。