Hàm header() trong PHP

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);

10 bình luận


Đăng bình luận