Hướng dẫn php header(location)

Trong việc lập trình web bạn không thể thiếu việc chuyển người dùng từ trang này qua trang kia. Ví dụ như sau khi login thì chuyển người dùng về trang chủ. Hoặc vào các nội dung cần xác thực thì phải chuyển người dùng về trang login.

1. Chuyển trang bằng HTTP header

PHP hỗ trợ chuyển trang bằng cách trả về HTTP header Location theo đặc tả của giao thức HTTP. Khi trình duyệt nhận được response từ server có HTTP header "Location" thì trình duyệt sẽ tự động chuyển hướng đến url được chỉ định.

HTTP header:

Location: 

Cách thực hiện đơn giản như sau.

Trường hợp bạn muốn chuyển hướng ra trang ngoài không phải trang hiện tại của bạn. Thì bạn hãy để đầy đủ đường dẫn URL.

Như vậy ta cũng bị lỗi Warning: Cannot modify header information;

Chúng ta phải đảm bảo các lệnh header được gọi trước tất cả các output khác.

Lỗi 2: ERR_TOO_MANY_REDIRECTS

Một lỗi thứ 2 thường bị khi sử dụng cách này là lỗi ERR_TOO_MANY_REDIRECTS thường thấy mã lỗi này trên Chrome. Ở các trình duyệt khác, hình thức hiện lỗi có thể khác. Nguyên nhân lỗi là bị điều hướng liên tục.

Ví dụ như trình duyệt đang ở trang index.php, nhưng lại có lệnh header["Location: /index.php"];. Vậy là khi ta vào trang index.php lại bị đá về index.php, liên tục như vậy. Đến một số lần quy định, Chrome sẽ không thèm chuyển hướng theo chỉ thị Location header nữa. Mà báo ra lỗi này.

Để giải quyết, chúng ta phải check điều kiện chuyển trang. Nếu đang ở trang hiện tại, thì không được chuyển nữa. Ví dụ như URL hiện tại của chúng ta là //localhost/index.php thì ta phải kiểm tra thông tin $_SERVER['REQUEST_URI'] cho ta được đoạn sau domain /index.php.

Chủ Đề