fungsi header() PHP
definisi dan penggunaan
fungsi header() mengirim header HTTP asli ke klien.
dapat dianggap penting, bahwa harus memanggil fungsi header() sebelum mengirim output yang sebenarnya (dalam PHP 4 dan versi yang lebih tinggi, Anda dapat menggunakan output cache untuk memperbaiki masalah ini):
<html> <?php // kesalahan dihasilkan // ada output yang sudah ada sebelum memanggil header() header('Location: http://www.example.com/'); ?>
syarat
header(string,replace,http_response_code)
parameter | deskripsi |
---|---|
string | wajib. menentukan string header yang akan dikirim. |
replace |
opsional. menunjukkan apakah header ini mengganti header sebelumnya, atau menambahkan header kedua. defaultnya adalah true (ganti). false (ijin beberapa header yang bertipe yang sama). |
http_response_code | Pilihan. Buat kode respons HTTP wajib untuk nilai yang ditentukan. (Tersedia di PHP 4 dan versi yang lebih tinggi) |
Petunjuk dan Komentar
Komentar:Dari PHP 4.4 seterusnya, fungsi ini menghalangi pengiriman beberapa header sekali. Ini adalah tindakan perlindungan dari serangan injeksi header.
Contoh
Contoh 1
<?php // Tanggal di masa lalu header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Cache-Control: no-cache"); header("Pragma: no-cache"); ?> <html> <body> ... ...
Komentar:Pengguna mungkin mengatur beberapa opsi untuk mengubah pengaturan cache bawaan browser. Dengan mengirimkan header di atas, Anda dapat menimpa setiap pengaturan ini, memaksa browser untuk tidak melakukan caching!
Contoh 2
Minta pengguna menyimpan berkas PDF yang dihasilkan (Header Content-Disposition digunakan untuk menyediakan nama berkas yang direkomendasikan, dan memaksa browser untuk menampilkan dialog simpan):
<?php header("Content-type:application/pdf"); // Berkas akan disebut downloaded.pdf header("Content-Disposition:attachment;filename='downloaded.pdf'"); // Sumber PDF berada di original.pdf readfile("original.pdf"); ?> <html> <body> ... ...
Komentar:Internet Explorer Microsoft IE 5.5 ada bug yang menghalangi mekanisme di atas. Dengan mengupgradesebagai Service Pack 2 atau versi yang lebih tinggi, bug ini dapat dipecahkan.