Çerezler farklı sayfalarda çalışmıyor

6 Cevap php

Tamam, ben bir kurabiye seti var ve ben Firefox özel verileri giderseniz ben açıkça Tamam ... bu yüzden çalışır belirli bir dizinin tek bir sayfada echo, (www.example.com / dir) görebilirsiniz ancak siteye (www.example.com) endeksi sayfasında, bu alışkanlık yankı, bu çerez ayarlı değil diyor. Evet çerezler etkin, evet ben önbellek ve tüm bu takas çalıştı. Herhangi bir fikir? PHP btw

6 Cevap

Hangi dizin çerez ayarlandığında aldığında vardır?

PHP manual on setcookie(), vurgu mayın:

Path

Çerez mevcut olacaktır hangi sunucuda yolu. '/' Belirtilirse, çerez tüm etki alanı içinde mevcut olacaktır. '/ Foo /' belirtilirse, çerez sadece / foo / dizini içinde kullanılabilir olacak ve böyle bir etki / foo / bar / gibi tüm alt-dizinleri. The default value is the current directory that the cookie is being set in.

Çerezler, belirli bir etki alanı, alt alan, yol ve protokol (http / https) bağlı olabilir. Siz PHP çerez ayarlarken yolunu belirtmeniz gerekir:

setcookie("TestCookie", "Value", time()+3600 , '/' );

Dördüncü parametre sitenin köküne bağlar ve ana sitenin herhangi bir alt satışa sunulacak.

Eğer ana etki alanı ve herhangi bir alt üzerinde kullanılabilir istiyorsanız, bu gibi beşinci parametresi kaynağı:

setcookie("TestCookie", "Value", time()+3600 , '/', '.example.com' );

Şimdi de okunabilir olacaktır:

www.example.com
example.com/newdir
awesome.example.com/newdir

Sen çerez ayarlanır ediliyor yolunu kontrol etmeniz gerekir.

O '/' değilse, cevap var!

Lütfen yol seçeneğini ayarlayın; Varsayılan değer, siz dizin / dir, bu dizin içinde ya da altında da sadece içinde çerez ayarı Çünkü çerez set in ediliyor dizindir.

Açıkça, yani yolunu ayarlayarak bu sorunu olsun.

setcookie(name,value,expire,path,domain,secure) 

Için "/" yolunu ayarlayın.

Evet ben de bu sorunla karşı karşıya ancak aşağıdaki kodu tarafından çözüldü, bu deneyin.

setcookie("TestCookie", "Value", time()+3600 , '/' );

Sen setcookie() olarak / için $ yolunu ayarlamak gerekir, tüm dizinleri erişmek istiyorsanız