Tôi đang cố gắng viết mã PHP để xóa tất cả cookie của người dùng trên miền của mình.Không thể xóa cookie được đặt trong JavaScript trên máy chủ
Đây là những gì tôi nhận:
<?php
$domain = 'www.example.com';
$deleteExpiration = time() - 60*60*24*365*10; // 10 years ago
foreach (array_keys($_COOKIE) as $cookie) {
setcookie($cookie, 0, $deleteExpiration, '/', $domain);
}
Chạy mã này vào http://www.example.com/delete_cookies.php xóa tất cả các cookie được thiết lập trên máy chủ, nhưng không phải cookie đã được thiết lập trong JavaScript.
Tôi đã xác minh bằng hộp thoại Cookie của Firefox mà các cookie có vấn đề thực sự là từ (path = /; domain = www.example.com). Sử dụng tiêu đề HTTP Trực tiếp, tôi có thể thấy tiêu đề sau được gửi:
Set-Cookie: CookieName=0; expires=Fri, 12-Mar-1999 19:36:15 GMT; path=/; domain=www.example.com
Vì vậy, tôi tin rằng lệnh setcookie đang hoạt động như mong đợi. Firefox chỉ không tôn trọng yêu cầu. Một điều nữa tôi nhận thấy là nếu tôi đặt cookie với domain=www.example.com
trên máy chủ, thì nó được liệt kê trong hộp thoại cookie của Firefox với domain=".www.example.com"
, nhưng nếu tôi đặt cookie sau bằng mã JavaScript thì dấu chấm đầu tiên là không thêm vào.
Tôi đang làm gì sai? Làm cách nào để xóa các cookie này?
http://stackoverflow.com/a/25967822/1642018 – AMB
Bạn có thể tìm thấy ['$ cookie-> delete()'] (https://github.com/delight-im/PHP-Cookie/blob/ 004cde69ec840e65c15275e09b92ecb1da06f357/src/Cookie.php # L173) hữu ích, như được tìm thấy trong [thư viện độc lập này] (https://github.com/delight-im/PHP-Cookie). – caw