PHP header() fonksiyonu
tanım ve kullanım
header() fonksiyonu, istemciye temel HTTP başlıklarını gönderir.
Bunun önemini anlamak önemlidir, yani header() fonksiyonunu herhangi bir gerçek çıktı gönderilmeden önce çağırmak zorundasınız (PHP 4 ve daha yüksek sürümlerinde, bu sorunu çözmek için çıktı önbellekleme kullanabilirsiniz):
<html> <?php // sonuç hata // header() çağrısından önce çıktı var header('Location: http://www.example.com/'); ?>
gramer
header(string,replace,http_response_code)
parametre | tanım |
---|---|
string | zorunlu. Gönderilecek başlık dizgisini belirtir. |
replace |
opsiyonel. Bu başlıkın önceki başlığı değiştirip değiştirmediğini veya ikinci bir başlık eklenip eklenmediğini belirtir. varsayılan olarak true'dur (değiştirme). false (aynı türdeki çok sayıda başlık izin verir). |
http_response_code | İsteğe bağlı. HTTP yanıt kodunu belirtilen değere zorlayın. (PHP 4 ve daha yüksek sürümler için kullanılabilir)} |
İpuçları ve Açıklamalar
Açıklama:PHP 4.4'ten sonra, bu fonksiyon birden fazla başlığı bir seferde göndermeyi önler. Bu, başlık enjeksiyon saldırısına karşı bir koruma tedbididir.
Örnek
Örnek 1
<?php // Geçmişteki tarih header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache"); header("Pragma: no-cache"); ?> <html> <body> ... ...
Açıklama:Kullanıcılar, tarayıcının varsayılan önbellekleme ayarlarını değiştirmek için bazı seçenekler ayarlayabilir. Yukarıdaki başlığı göndererek, bu ayarların üzerinde geçersiz kılabilir ve tarayıcıyı önbellekleme yapmaktan men edebilirsiniz!
Örnek 2
Kullanıcıya oluşturulan PDF dosyasını kaydetmesini önerin (Content-Disposition başlığı, bir önerilen dosya adı sağlar ve tarayıcıyı kaydetme penceresini gösterir):
<?php header("Content-type:application/pdf"); // Dosya downloaded.pdf olarak adlandırılacaktır header("Content-Disposition:attachment;filename='downloaded.pdf'"); // PDF kaynağı original.pdf içinde readfile("original.pdf"); ?> <html> <body> ... ...
Açıklama:Microsoft IE 5.5, bu mekanizmayı engelleyen bir hata içerir. Bu hatayı Service Pack 2 veya daha yüksek sürüme yükselterek çözebilirsiniz.