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.