Ben sekmeyi kapattıktan sonra Cookies kaybolur

2 Cevap php
if(isset($_POST['remember'])) {
    if(!isset($_COOKIE['tracker_id'])) {
        setcookie('tracker_id', $_SESSION['id'], time()+2592000);
        setcookie('tracker_username', $_SESSION['username'], time()+2592000);
        setcookie('tracker_rsn', $_SESSION['rsn'], time()+2592000);
    }
}

Ben giriş yapmadan önce çerezleri olup olmadığını görmek için kontrol edin, çünkü kod çalıştığını biliyorum, ve orada değildir. Ben giriş ve tanımlama vardır. Ben yeni bir sekmede sekmesini (değil tarayıcı), yeniden açın kapatın ve çerezleri yok. Ben bir şey gözden emin değilim, ama ben burada oldukça ne emin değilim ...

Herhangi bir yardım takdir

2 Cevap

Nasıl kurabiye var olup olmadığını görmek için kontrol edilir? Kurabiye dizi Denetleme size bütün hikayeyi anlatmak değildir. Eğer zaten yoksa, FireFox için Web Developer Addon indir. Bu size olan site için çerezleri, görüntüleyebilir, düzenleyebilir, ve silmek için bir özelliği vardır. Bu gibi aslında tarayıcı tarafından belirlenen ediliyor ne size fikir verecektir giriş yaptıktan sonra çerezlerinizi görüntüleyebilirsiniz. Sonra tarayıcıyı kapatın ve tekrar açın, visit site ve yeniden tanımlama bilgilerini görüntüleme. Onlar belki hala orada olup olmadığını görmek ve sadece okunan değil.

Ben açıkça ziyade PHP bunu varsayılan icar daha çerez yolunu ve etki alanını ayarlamak için gerçekten iyi bir fikir zor yoldan öğrendim. Aksi mydomain.com çerezleri www.mydomain.com farklı bir yol olacak ve bu mydomain.com ve diğer eğlenceli şeyler okunan değil www kurabiye yol açabilir. Biz şimdi hep açıkça aşağı olduğunu sorunu izlemek için çalışırken 6 ay boyunca muhtemelen geliştirme zamanı bir hafta yetmeyecek israf sonra, bizim çerezleri ayarlayın.

Yolları sorun değil eğer yanlışlıkla çerezleri silme olabilir. Bu kodu çalıştırdığınızda size OTURUM gelen geçiyoruz değerleri her zaman emin var mı? False değeri değerleri dizide tanımlanmış değildir ve güçlü bir hata raporlama seviyesini yoksa kazara olabilecek bir cookie silmek için PHP söyler.

Eğer koşuluyla açıklamak gibi kod çalışır:

1) there is nothing else serverside interfering with the values of the cookies 2) you haven't told your browser to treat all cookies as session cookies

Eğer çerezleri ayarlamak ve okumak için gerekli bir minimum kod ile bir test kulesi inşa ettiniz mi? Deftere parçacığını Fromt, daha fazla kod oluyor besbelli çok var. Ve farklı tarayıcılarda test etmek deneyin.

Gibi bir şey:

<?php

if ($_GET['set') {
   setcookie('tracker_id', 'tracker_id set at ' . date('r'), time()+2592000);
   setcookie('tracker_username', 'tracker_username set at ' . date('r'), time()+2592000);
   setcookie('tracker_rsn', 'tracker_rsn set at ' . date('r'), time()+2592000);
}
print_r($_COOKIE);
?>

C.