使用新的 Cookie 法,我试图找到一种方法,可以使用 PHP 脚本从我的站点中删除所有 cookie。我有一个有效的脚本,但它不会删除谷歌分析 cookie。
如何删除谷歌分析 cookie?
foreach($_COOKIE as $key => $value) {
setcookie($key, '', time()-1000);
setcookie($key, '', time()-1000, '/');
}
使用新的 Cookie 法,我试图找到一种方法,可以使用 PHP 脚本从我的站点中删除所有 cookie。我有一个有效的脚本,但它不会删除谷歌分析 cookie。
如何删除谷歌分析 cookie?
foreach($_COOKIE as $key => $value) {
setcookie($key, '', time()-1000);
setcookie($key, '', time()-1000, '/');
}
您需要将域作为第 5 个参数传递...
setcookie($key, '', time()-1000, '/', '.domain.com');
通常,Firefox 会显示 cookie 是设置在 www.yourdomain.com 还是 domain.com 下。在我的例子中,谷歌分析 cookie 是为 domain.com 设置的。这段代码完成了这项工作,删除了所有 3 个与 Google 相关的 cookie:
foreach ( $_COOKIE as $key => $value ){
if($_POST[$key]==1){
unset($_COOKIE[$key]);
if($key=='language' || $key=='currency'){
setcookie($key, null, -1, '/', 'www.mydomain.com');
}else if($key=='_ga' || $key=='_gid' || $key == '_gat_gtag_UA_whatever_1' ){
setcookie($key, null, -1, '/', '.mydomain.com');
}else{
foreach ( $_COOKIE as $key => $value ){
if($_POST[$key]==1){
unset($_COOKIE[$key]);
if($key=='language' || $key=='currency'){
setcookie($key, null, -1, '/', 'www.mydomain.com');
}else if($key=='_ga' || $key=='_gid' || $key == '_gat_gtag_UA_whatever_1' ){
setcookie($key, null, -1, '/', '.mydomain.com');
}else{
setcookie($key, null, -1, '/');
}
$n++;
}
}
我让它以表单操作的形式运行,其中列出了当前存储在客户端浏览器中的所有 cookie,并让他选择要删除的 cookie。选择的那些以 $_POST[$key]==1 的形式出现,然后由脚本处理。未选中的保持活力。这是针对 OpenCart 下的在线商店的。不用说,将“mydomain.com”替换为您的,并将跟踪 cookie 中的“whatever”替换为您的 Google 帐号。
foreach($_COOKIE as $key => $value) {
setcookie($key, '', time()-1000, '/', '.domain.com');
}
上面的例子对我不起作用——所有其他的 cookie 都被删除了,只剩下 GA 的。有人知道为什么这可能是更好的方法吗?