çerezler nasıl silinir?

print_r ($ _ COOKIE); , sonucu takip ediyorum.

Array ( [filters] => Array ( [input1] => 1 [input2] => 20000 [input3] => none ) [PHPSESSID] => 12334 ) 

Bazı öğeleri silmek ve bunun gibi olmasını istiyorum:

Array ( [filters] => Array ( [input3] => none ) [PHPSESSID] => 12334 ) 

I tried this but it not effecting anything in $_COOKIE

$past = time() - 3600;
setcookie( "filters[input1]", "", $past, '/' );
setcookie( "filters[input2]", "", $past, '/' );

Burada sorun nedir? Bütün gün bunu denemek için bekledi?

Teşekkürler

0
@ Derek: başlıklar? Bunu nasıl kontrol edip düzeltebilirim? Lütfen bana bir örnek ver.
katma yazar Student, kaynak
Ayrıca, $ yol ve $ alanı argümanlar $ yol ve $ alan adıyla eşleşen emin kullanıldığını yapmak onları ilk etapta kurmak
katma yazar DaveRandom, kaynak
Başlıkların gönderilmesinden önce setcookie'nin çalıştığından emin olun.
katma yazar Derek, kaynak
setcookie 'yi çağırmadan önce, boşluk bırakamazsınız, ör. `
katma yazar middus, kaynak
@Student En başta çerezleri belirleyen kodu gösterebilir misiniz?
katma yazar middus, kaynak

4 cevap

Kurabayı oluşturmak için yaptığınız çerezle aynı argümanları (yol, güvenli, vb.) Silmek için setcookie() 'yi aradığınızdan emin misiniz?

Ayrıca, setcookie() , çalışan komut dosyasında $ _ COOKIE öğesini etkilemez. Bu betiğe yalnızca sonraki çağrılar değiştirilmiş $ _ COOKIE dizisine sahip olacaktır. Aynı oturumdaki $ _ COOKIE değerlerini kaldırmak için unset ($ _ COOKIE ['name']) 'i arayın.

2
katma

Deneyin:

unset($_COOKIE['filters']['input1']);
unset($_COOKIE['filters']['input2']);
$time = time() + 1000;//enything you want, if its in the past $_COOKIE['filters'] will no loger exist
setcookie('filters', $_COOKIE['filters'], $time, '/' );
1
katma
Bu çözüm benim için çalışıyor ...
katma yazar Student, kaynak
Ama sayfayı yenilediğimde, çerezler geri döndü.
katma yazar Student, kaynak
Hmm .. emin misin, kod değerleri yeniden ayarlamıyor mu?
katma yazar 19greg96, kaynak
Başlangıçta 'filtreler' çerezini ayarlamak için hangi kodu kullandınız? "setcookie ('filters', $ _COOKIE ['filters'], $ time, '/'); Çerezleri kaydetmek için iyi çalışmıyor .. Bu fonksiyon çağrısından önce sayfanın başlıklarını gönderdiniz mi?
katma yazar 19greg96, kaynak

Çalıştırdıktan sonra sayfayı yeniden yüklemelisiniz: setcookie() - sayfayı yeniden yükleyene kadar ayar çerezinizin sonucu kullanılamaz. Ayrıca 'eski' zamanı kullanmayı deneyin - 1 saatten daha eski - geçmişte bir yıl gibi deneyin. Zaman geçmişte yeterli değilse, bazı tarayıcılar çerezleri silmez

1
katma

Çerezlerinizi bir alan adıyla oluşturduysanız, aynı alan adını kullanarak kaldırmanız gerekebilir. diğer bir deyişle

bir çerez ayarlamak için:

setcookie('mycookie', 'value', time() + 999, '/', '.my.domain', false);

çerezi silmek için:

 setcookie('mycookie', "", -1, '/', '.my.domain', false);
0
katma