Ghi chú. Có các tùy chọn mà người dùng có thể đặt để thay đổi cài đặt bộ nhớ đệm mặc định của trình duyệt. Bằng cách gửi các tiêu đề ở trên, bạn sẽ ghi đè bất kỳ cài đặt nào trong số đó và buộc trình duyệt không lưu vào bộ đệm
Định nghĩa và cách sử dụng
Hàm header[] gửi tiêu đề HTTP thô tới máy khách
Điều quan trọng cần lưu ý là chức năng header[] phải được gọi trước khi gửi bất kỳ đầu ra thực tế nào
cú pháp
tiêu đề [tiêu đề, thay thế, http_response_code]
Giá trị tham số
Tham sốDescriptionheaderBắt buộc. Chỉ định chuỗi tiêu đề cho sendreplaceOptional. Cho biết liệu tiêu đề có nên thay thế tiêu đề tương tự trước đó hay thêm tiêu đề mới cùng loại. Mặc định là TRUE [sẽ thay thế]. FALSE cho phép nhiều tiêu đề cùng loạihttp_response_codeTùy chọn. Buộc mã phản hồi HTTP thành giá trị đã chỉ địnhchi tiết kỹ thuật
Giá trị trả về. Không có gìPhiên bản PHP. 4. 0+Nhật ký thay đổi PHP. PHP5. 1. 2. Bây giờ ngăn nhiều hơn một tiêu đề được gửi cùng một lúc. Đây là một bảo vệ chống lại các cuộc tấn công tiêm tiêu đềThêm ví dụ
Ví dụ
Cho phép người dùng được nhắc lưu tệp PDF đã tạo [tiêu đề Bố trí nội dung được sử dụng để cung cấp tên tệp được đề xuất và buộc trình duyệt hiển thị hộp thoại lưu]
Gần đây, tôi đang thiết kế một hệ thống người dùng đơn giản cho một trong những trang web của mình. Rõ ràng, nó có tính năng đăng nhập và đăng xuất. Bây giờ khi tôi thiết kế trang đăng nhập, khi đăng nhập thành công, tôi muốn người dùng được chuyển hướng đến trang chỉ mục mà không hiển thị bất kỳ loại thông báo nào. Trong khi khi tôi thiết kế trang đăng xuất, tôi muốn trang hiển thị thông báo “Đã đăng xuất thành công” trong 5 giây, sau đó chuyển hướng đến trang chỉ mục
Bây giờ bạn có thể đạt được điều này trong HTML bằng cách sử dụng thẻ meta mà tôi sẽ trình bày ở phần cuối của hướng dẫn này, nhưng nếu bạn muốn làm điều này trong PHP thì sẽ hơi phức tạp một chút. Sau đây là hai trường hợp và giải pháp của họ
Trường hợp 1. Chuyển hướng một trang tới một URL mà không cần đợi trong PHP
Giả sử, sau khi đăng nhập thành công, bạn muốn chuyển hướng người dùng đến chỉ mục. php mà không cần chờ đợi. Sau đây là mã có thể được sử dụng cho cùng
header["Location: index.php"];
Đảm bảo rằng không có văn bản nào được gửi tới trình duyệt trước khi phần này của tập lệnh được thực thi. Vì header[] là một chức năng được sử dụng để đặt “Tiêu đề” cho một trang khi nó được mở trong trình duyệt. Nói một cách đơn giản hơn, khi trình duyệt bắt đầu nhận dữ liệu từ máy chủ, nó sẽ lấy các thông báo tiêu đề trước và sau đó là dữ liệu được cho là sẽ được hiển thị. Bây giờ, nếu bạn gửi bất kỳ dữ liệu nào sẽ được hiển thị, rõ ràng bạn không thể gửi thông báo tiêu đề nữa. Vì vậy, hãy luôn chú ý sử dụng hàm header[] của PHP trước khi gửi bất kỳ loại dữ liệu nào được hiển thị
trường hợp 2. Chuyển hướng một trang tới một URL sau khi đợi X giây trong PHP
Chúng ta hãy lấy ví dụ tương tự trong tình huống trên nhưng giả sử rằng lần này bạn muốn hiển thị thông báo cho biết đã đăng nhập thành công, sau đó đợi 5 giây và chuyển hướng đến trang chỉ mục. Đây là mã để làm điều đó
Xin lưu ý rằng tôi đã sử dụng câu lệnh “echo” SAU KHI sử dụng hàm “header[]”. Tôi đã giải thích ngắn gọn logic đằng sau điều này, trong Trường hợp 1. Nếu bạn sử dụng câu lệnh echo hoặc hiển thị bất kỳ văn bản nào trước khi đặt tiêu đề trong trang PHP, chức năng tiêu đề sẽ không hoạt động. Vì vậy, hãy chắc chắn rằng trước tiên bạn đặt tiêu đề và sau đó sử dụng câu lệnh echo
Mẹo thưởng 1. Mã HTML để chuyển hướng một trang web sau X giây
Sau đây là mã để chuyển hướng một trang web tới một URL [ví dụ:. g. http. //nimishprahu. com] sau, giả sử, 5 giây
Chỉ cần đặt đoạn mã trên vào phần đầu của trang tôi. e. thẻ sau và trước. Điều này sẽ làm mới [chuyển hướng] một trang tới một URL cụ thể sau số giây được chỉ định
Mẹo thưởng 2. Mã Javascript để chuyển hướng một trang web sau X giây
Nếu bạn muốn sử dụng Javascript vì lý do nào đó, thì bạn có thể sử dụng hàm setTimeout[] để đạt được kết quả tương tự, miễn là người dùng đã bật Javascript
setTimeout[function []{ window.location.href= '//nimishprabhu.com';},5000];
Bạn sẽ thay thế “https. //nimishprahu. com” bằng URL của bạn và 5000 [5000 mili giây tôi. e 5 giây] với số mili giây mong muốn để đợi trước khi chuyển hướng trang
Hy vọng bài viết này hữu ích. Nếu bạn có bất kỳ nghi ngờ nào, vui lòng gửi bình luận bằng cách sử dụng biểu mẫu bên dưới
/**
* Redirect with POST data.
*
* @param string $url URL.
* @param array $post_data POST data. Example: array['foo' => 'var', 'id' => 123]
* @param array $headers Optional. Extra headers to send.
*/
public function redirect_post[$url, array $data, array $headers = null] {
$params = array[
'http' => array[
'method' => 'POST',
'content' => http_build_query[$data]
]
];
if [!is_null[$headers]] {
$params['http']['header'] = '';
foreach [$headers as $k => $v] {
$params['http']['header'] .= "$k: $v\n";
}
}
$ctx = stream_context_create[$params];
$fp = @fopen[$url, 'rb', false, $ctx];
if [$fp] {
echo @stream_get_contents[$fp];
die[];
} else {
// Error
throw new Exception["Error loading '$url', $php_errormsg"];
}
}
//stackoverflow.com/questions/5576619/php-redirect-with-post-data
Cập nhật lần cuối. Gửi bởi. müslüm ÇEN