ฟังก์ชัน header() ส่งส่วนหัว HTTP แบบดิบไปยังไคลเอนต์
สิ่งสำคัญคือต้องตระหนักว่าจะต้องเรียกใช้ฟังก์ชัน header() ก่อนที่จะส่งเอาต์พุตจริงใดๆ (ใน PHP 4 และใหม่กว่า คุณสามารถใช้การบัฟเฟอร์เอาต์พุตเพื่อแก้ไขปัญหานี้ได้):
<html><?php// ซึ่งส่งผลให้เกิดข้อผิดพลาด// ผลลัพธ์ด้านบนอยู่ก่อน header() callheader('Location: http://www.example.com/');?>
ส่วนหัว (สตริง, แทนที่, http_response_code)
พารามิเตอร์ | อธิบาย |
---|---|
เชือก | ที่จำเป็น. ระบุสตริงส่วนหัวที่จะส่ง |
แทนที่ | ไม่จำเป็น. ระบุว่าส่วนหัวนี้แทนที่ส่วนหัวก่อนหน้าหรือเพิ่มส่วนหัวที่สอง ค่าเริ่มต้นคือ TRUE (แทนที่) FALSE (อนุญาตให้มีส่วนหัวประเภทเดียวกันหลายรายการ) |
http_response_code | ไม่จำเป็น. บังคับให้โค้ดตอบกลับ HTTP เป็นค่าที่ระบุ (มีให้ใช้งานใน PHP 4.3 ขึ้นไป) |
หมายเหตุ: ตั้งแต่ PHP 4.4 ฟังก์ชันนี้จะป้องกันไม่ให้ส่งหลายส่วนหัวพร้อมกัน นี่เป็นมาตรการป้องกันการโจมตีแบบแทรกส่วนหัว
ปิดการใช้งานการแคชหน้า:
<?php// วันที่ใน Pastheader("หมดอายุ: จันทร์ 26 กรกฎาคม 1997 05:00:00 GMT");header("Cache-Control: no-cache");header("Pragma: no-cache") ;?><html><body>......
หมายเหตุ: มีตัวเลือกที่ผู้ใช้สามารถตั้งค่าให้เปลี่ยนการตั้งค่าแคชเริ่มต้นของเบราว์เซอร์ได้ ด้วยการส่งส่วนหัวด้านบน คุณสามารถแทนที่การตั้งค่าเหล่านี้และบังคับให้เบราว์เซอร์ไม่แคชได้!
แจ้งให้ผู้ใช้บันทึกไฟล์ PDF ที่สร้างขึ้น (ส่วนหัว Content-Disposition ใช้เพื่อระบุชื่อไฟล์ที่แนะนำและบังคับให้เบราว์เซอร์แสดงกล่องโต้ตอบบันทึก):
<?phpheader("Content-type:application/pdf");// จะถูกเรียกว่า download.pdfheader("Content-Disposition:attachment;filename='downloaded.pdf'");// ต้นฉบับของ PDF เป็นต้นฉบับ .pdfreadfile("Original.pdf");?><html><body>......
หมายเหตุ: Microsoft IE 5.5 มีข้อบกพร่องที่ขัดขวางกลไกข้างต้น ข้อผิดพลาดนี้สามารถแก้ไขได้โดยการอัพเกรดเป็น Service Pack 2 หรือสูงกว่า