Ben zaten set oturum cookie başlığını bastırmak gerekiyor, ama bunu yapmak için herhangi bir yolu bulamıyor.
Why?
I need to make an image, sent by a PHP script, cacheable by the end user; this image is used to track if a newsletter has been read by the receiver, so if the image is requested I know the newsletter has been read. I only need to know when the newsletter gets opened for the first time, the subsequent requests can be ignored. The problem is that, even if I properly set the Expire and Cache-Control headers, the image is requested every time the user opens the newsletter--only that image used for the tracking--basically because it's not cached by the user. I used this tool to understand why the URL is not cacheable, and it says because of the cookie sent.
Ne önlemek istiyorsanız izleme görüntünün yük bir gecikme görülmeye kullanıcısıdır. Strike>
Bu yüzden web sitesi büyük ve karmaşık olduğu için, kaldırmak istemiyorum, benim web sitesi init fonksiyonu bir session_start()
var, ve sadece ihtiyaç durumunda oturumu başlatmadan gibi bazı radikal değişim (bir yapım ben öngörülen çözümler) arzu değildir. session_start()
PHPSESSID
çerez ile Set-Cookie:
başlığı ayarlar çağırarak, ve bunu kaldırmak gerekir. Böyle boş bir değer ile ayarlama çalıştı php.net üzerinde header()
sayfadan okumaya
header('Set-Cookie:');
header('Set-Cookie:', true);
header('Set-Cookie: ');
header('Set-Cookie: ', true);
önce ve a session_write_close()
çağrısı, ama elde edilen tüm kullanıcı header
işlevi tam olarak yazıldığı gibi, herhangi bir değere olmadan, Set-Cookie:
başlık aldığı sonra argüman.
Ben hala PHP 5.2 kullanıyorum söylemek gerekir, bu yüzden header_remove()
Ben kılavuzda görmek fonksiyonu ve lighttpd 1.4.24 kullanamazsınız.
EDIT: bu yüzden, o benim başlıklarını kontrol etmek için kullanılan araç iyi değil gibi görünüyor. I curl --head
ile başlıklarına baktım ve aşağıdaki başlıkları gördüm.
HTTP/1.1 200 OK
X-Powered-By: PHP/5.2.9
Set-Cookie: PHPSESSID=qn3ms55nvst2717e7b73qqu445; path=/
Last-Modified: Sun, 29 Mar 2009 21:53:36 GMT
ETag: "cb1dffff8c10db7b0a88794b1453cab8"
Expires: Sun, 20 Dec 2009 23:28:07 GMT
Cache-Control: private, max-age=2592000
Pragma: no-cache
Content-Type: image/png
Content-Length: 1322
Date: Fri, 20 Nov 2009 23:28:07 GMT
Server: lighttpd/1.4.24
Gördüğünüz gibi bir Pragma: no-cache
ayarlanır. Ben kullanılan alet Pragma
başlık kullanılan olmadığını söyledi, ama yanlış oldu. I Pragma: cache
ayar denedim, ve posta istemcisi önbellek görüntüsü yaptı.
Ben header('Pragma:')
ile Pragma
başlığını kaldırmak değil çünkü belki Set-Cookie
başlık unsetting imkansızlığı nedeniyle lighttpd biridir, başka bir keşif yaptı. PHP 5.3 için bekliyorum. Apache kullanarak birisi yukarıdaki header
çağrı Pragma
başlığını kaldırır teyit edebilir?
Aydınlatıcı açıklama :-) için teşekkürler txyoji
Bu noktada bu soru yalnızca değeri olmayan bir başlık belirleyerek başlıklarını kaldırmak değil lighttpd onaylamak için burada görünüyor.