Lưu ý: Bài học này đang ở trạng thái chưa hoàn tất.
Hàm header() trong PHP
Hàm header()
trong PHP dùng để gửi thông tin HTTP header về cho máy khách.
<?php
/* Chuyển tiếp về một trang khác */
header('Location: http://www.example.net/');
exit();
?>
Lưu ý: Nếu được sử dụng thì hàm header()
cần phải được gọi ở đẩu tập tin PHP trước khi bất cứ dữ liệu nào được gửi về cho máy khách. Ngược lại PHP sẽ báo lỗi.
Ví dụ sau sẽ báo lỗi khi chạy:
<DOCTYPE html>
<?php
header('Location: http://www.example.net/');
exit();
?>
<html>
<head>
Ví dụ sau cũng sẽ sinh ra lỗi vì dòng trống đầu tiên sẽ hiển thị trước khi header()
được gọi.
<?php
header('Location: http://www.example.net/');
exit();
?>
<html>
<head>
Cú Pháp Hàm header
Hàm header()
trong PHP có cú pháp như sau:
void header(string $string [, bool $replace = true [, int $http_response_code ]])
Hàm header()
không trả về giá trị nào (hay còn gọ là giá trị void
).
Tham Số Trong Hàm header
Tham Số $string
Tham số $string
là bắt buộc và có kiểu dữ liệu là kiểu chuỗi. Giá trị truyền vào tham số $string
xác định tên của trường header và giá trị tương ứng của trường header đó.
Ví dụ 1:
<?php
header("Cache-Control: no-cache");
?>
Ví dụ trên hàm header()
sẽ gửi về trường header với tên là Cache-Control
và giá trị tương ứng là no-cache
.
Ví dụ 2:
<?php
header("Accept-Language: vi-VN");
?>
Ví dụ trên hàm header()
sẽ gửi về trường header với tên là Accept-Language
và giá trị tương ứng là vi-VN
.
Tham Số $replace
Tham số $replace
là tuỳ chọn và có kiểu dữ liệu là kiểu BOOLEAN
. Nếu giá trị truyền vào cho tham số này là TRUE
thì các header tương tự đã được thêm vào trước đó sẽ bị thay thế bởi header hiện tại. Ngược lại PHP sẽ chỉ thêm header hiên tại mà không xoá bỏ header tương tự được thêm vào trước đó.
Ví dụ dưới đây cả hai header WWW-Authentication
với giá trị khác nhau đều được PHP gửi trả về máy khách.
<?php
header('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>
Tham Số http_response_code
Tham số http_response_code
là tuỳ chọn và có kiểu dữ liệu là integer. Giá trị của tham số http_response_code
dùng để quy định mã trạng thái HTTP Status Code.
Ví dụ dưới đây chuyển tiếp người dùng về trang login.php
với mã trạng thái HTTP là 307 (tạm thời chuyển tiếp):
header("Location: /login.php", TRUE, 307);