PHP nasıl yönlendirmek sonra bir çerez ayarlayabilirsiniz ve?

3 Cevap php

Işleme biraz yaptıktan sonra, kullanıcı girişi için bir çerez değeri ayarlayın ve sonra yeni bir sayfa onları yönlendirmek istiyorum. Ancak çerez ayarlanır almıyor. Ben yönlendirmeyi açıklama ise, çerez başarıyla ayarlanır. Ben bu tür bir başlık sorunu olduğunu varsayalım. Bu durum için en iyi çözüm nedir?

if($form_submitted) {
    ...
    setcookie('type_id', $new_type_id, time() + 60*60*24*30);
    header("Location: $url");
    exit;
}

Bu setcookie döner true ve her iki durumda ben hiç hata / uyarı / bildirimler alabilirsiniz unutmayın.

EDIT: I Unix / Apache / MySQL / PHP kullanıyorum

3 Cevap

Eğer insan adresler veya (www.domain.com/path1/path2/ gibi) alt klasörler varsa, o zaman sadece güncel bir, bütün yolları için çalışmak / çerez yolunu ayarlamanız gerekir.

if($form_submitted) {
    ...
    setcookie('type_id', $new_type_id, time() + 60*60*24*30, '/');
    header("Location: $url");
    exit;
}

PHP manuel:

The path on the server in which the cookie will be available on. If set to '/', the cookie will be available within the entire domain . If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain . The default value is the current directory that the cookie is being set in.

Ben IIS çalıştıran varsayarak yaşıyorum? IIS sürümleri ile know hata var hem çalışırken aynı isteği bir çerez ve bir konum başlığı ayarlamak az 7.

http://support.microsoft.com/kb/q176113/

Çerez ayarlandığında olmadığını nasıl test edilir? Bunlar ayarlandıktan sonra Cookies next sayfada mevcuttur.

Yaygın Tuzaklar:

Çerezler görünür olması gereken bir sayfanın bir sonraki yükleme kadar görünür olmazlar. Bir çerez başarıyla kurulmuştur çerez süresi dolmadan önce, bir sonraki sayfa üzerinde çerezi kontrol test etmek için. Geçerlilik süresi sona parametresi ile ayarlanır. Çerezlerin varlığını hata ayıklamak için güzel bir yolu sadece print_r ($ _COOKIE) arayarak;.