Làm cách nào để tự động chuyển hướng đến một trang khác trong PHP?

Lưu ý rằng bạn có thể dễ dàng sửa đổi các ví dụ này cho phù hợp với nhu cầu của riêng mình. Ví dụ: nếu bạn muốn nó xảy ra sau 2 giây, thì bạn chỉ cần thay 5 bằng 2

Chuyển hướng bằng thẻ meta HTML

Nếu bạn đang tìm kiếm một cách nhanh chóng và dễ dàng để chuyển hướng trang, thì bạn có thể đặt thẻ meta sau bên trong phần tử HEAD của tài liệu HTML của mình

Vài nét về phương pháp này

  • Thẻ “http-equiv” xác định loại tiêu đề chúng tôi đang đặt. Trong trường hợp này, chúng tôi đã cho nó giá trị “làm mới”
  • Bên trong thuộc tính nội dung, chúng tôi tuyên bố rằng chúng tôi muốn chuyển hướng đến URL ở trên sau 5 giây. Muốn nó chuyển hướng sau 2s hay 10s thì chỉ việc thay số 5
  • Mặc dù máy khách có thể bỏ qua các tiêu đề HTTP như thế này, nhưng nó sẽ hoạt động trên hầu hết các trình duyệt
  • Nội dung của trang SẼ được hiển thị trước khi quá trình làm mới diễn ra

Chuyển hướng sử dụng PHP

Bạn cũng có thể tạo “chuyển hướng bị trì hoãn” bằng cách sử dụng PHP

Nếu bạn đồng ý với việc người dùng nhìn thấy nội dung của trang, thì bạn có thể sử dụng ví dụ sau

//Set Refresh header using PHP.
header[ "refresh:5;url=//thisinterestsme.com/code" ];

//Print out some content for example purposes.
echo 'This is the content.';

Nếu bạn chạy đoạn mã PHP ở trên, bạn sẽ thấy thông báo được hiển thị trong năm giây

Sau đó, chuyển hướng xảy ra

Điều này về cơ bản giống như ví dụ đầu tiên. Sự khác biệt duy nhất là chúng tôi đang đặt tiêu đề bằng PHP thay vì sử dụng thẻ HTML

Chuyển hướng bằng JavaScript

Bạn cũng có thể sử dụng JavaScript để chuyển hướng người dùng sau một khoảng thời gian nhất định

//Using setTimeout to execute a function after 5 seconds.
setTimeout[function [] {
   //Redirect with JavaScript
   window.location.href= '//thisinterestsme.com/javascript';
}, 5000];

Trong đoạn mã JavaScript ở trên, chúng tôi đang sử dụng phương thức setTimeout để thực thi một chức năng sau một khoảng thời gian đã đặt

Bên trong chức năng, chúng tôi thay thế cửa sổ. vị trí. href với URL mà chúng tôi muốn người dùng truy cập

Trong trường hợp này, chức năng của chúng tôi chỉ chuyển hướng người dùng đến một trang khác. Xin lưu ý rằng tham số thứ hai của setTimeout phải tính bằng mili giây

Trong ví dụ của chúng tôi, chúng tôi đặt nó thành 5.000 mili giây, tương đương với 5 giây. Nếu bạn muốn thay đổi thành 2 giây, thì bạn sẽ cần sử dụng 2.000 mili giây để thay thế

Chuyển hướng PHP là một công cụ cực kỳ hữu ích, nhưng chúng cũng có thể nguy hiểm nếu không được triển khai đúng cách

Nếu bạn đã xem qua phần giới thiệu của chúng tôi về PHP 7. 4 và hướng dẫn của chúng tôi về cách xây dựng trang web trong 5 phút, bạn sẽ biết rằng hàm header[] có thể được sử dụng để dễ dàng chuyển hướng người dùng đến một trang khác. Tuy nhiên, trên thực tế, việc sử dụng chức năng này không đơn giản như người ta tưởng. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo một chuyển hướng PHP mà không gây ra các vấn đề lớn về sau

Phương thức cơ bản để chuyển hướng PHP

Hầu hết các hướng dẫn sẽ cho bạn biết rằng để tạo chuyển hướng PHP, bạn chỉ cần sử dụng hàm header[] ở đầu trang của mình. Để làm được điều đó, bạn sử dụng chức năng gửi một URL mới, như thế này

header['Location: '.$newURL.php];

This header function should be put before you pass any HTML or text to your users’ browsers, so it should be right at the top of the page. That means it should come before the declaration, before any Java, and before any PHP code. It will then send users to the new URL.

Mặc dù có vẻ đơn giản, nhưng khi nói đến hàm header[], sự đơn giản của mã có thể khiến các nhà phát triển có cảm giác an toàn sai lầm. Vì vậy, hãy xem cách bạn có thể sử dụng chức năng này một cách chính xác

Chết [] và Thoát []

Đầu tiên, bạn nên sử dụng công cụ sửa đổi die[] hoặc exit[] mỗi khi bạn sử dụng chuyển hướng. Tóm lại, vấn đề là các trình thu thập thông tin và bot có thể bỏ qua các tiêu đề và do đó, trang mà bạn cho rằng mình đang chuyển hướng khỏi đó hoàn toàn có thể truy cập được đối với chúng. Nói cách khác, nếu bạn đang sử dụng chuyển hướng tiêu đề để bảo vệ một trang cụ thể, thì nó không bảo vệ bạn chút nào

Đó là lý do tại sao bạn phải dừng xử lý phần còn lại của trang, trong trường hợp chuyển hướng bị bỏ qua. Cách để làm điều đó là thêm die[] hoặc exit[] sau chuyển hướng của bạn

header["Location: .$newURL.php"];
die[];

URL tương đối và tuyệt đối

Tiếp theo, hãy nói về URL tương đối và tuyệt đối trong chuyển hướng. RFC 7231 cho phép bạn sử dụng cả hai, nhưng bạn nên cực kỳ cẩn thận khi sử dụng chuyển hướng tương đối. Đó là bởi vì một số nhà xây dựng trang web đối chiếu và đổi tên các trang PHP. Điều này có nghĩa là nếu bạn đang làm việc trên PHP của mình thông qua một trình tạo trang web, bạn có thể sẽ phá vỡ tất cả các chuyển hướng của mình

Thật không may, hiện tại không có cách thực sự nào để giải quyết vấn đề này, nếu không có cái nhìn tổng quan cẩn thận về nơi các chuyển hướng của bạn đang trỏ đến

Mã trạng thái

Vấn đề thứ ba với các chuyển hướng PHP tiêu chuẩn là toán tử “vị trí” của PHP vẫn trả về mã HTTP 302. Bạn không nên cho phép nó làm điều đó, bởi vì nhiều trình duyệt web triển khai mã này theo cách hoàn toàn trái ngược với cách mà nó được cho là hoạt động. về cơ bản họ sử dụng lệnh GET thay vì thực hiện chuyển hướng "thực"

Do đó, cách thực hành tốt nhất khi xây dựng các chuyển hướng PHP là chỉ định mã được trả về. Thật không may, mã chính xác để sử dụng là một điểm gây tranh cãi. HTTP 301 cho biết chuyển hướng vĩnh viễn, điều này có thể khiến bạn gặp sự cố khi khôi phục trang gốc của mình. Rất tiếc, HTTP 303 được nhiều trình duyệt hiểu là “khác” và có thể gây ra sự cố khi lập chỉ mục trang của bạn thông qua các công cụ tìm kiếm

Trong thực tế, và cho đến khi tình trạng này được giải quyết, hãy sử dụng HTTP 303

Kiểm tra tài liệu

Ngoài việc thực hiện các biện pháp phòng ngừa cơ bản ở trên, bạn nên dành chút thời gian để đọc tài liệu về cách sử dụng chuyển hướng PHP trước khi xuất bản chúng. Bạn nên kiểm tra hướng dẫn sử dụng PHP để đảm bảo rằng bạn hiểu những gì bạn đang làm, cũng như kiểm tra tài liệu W3C để đảm bảo rằng bạn đang tuân theo phương pháp hay nhất

Và trong khi bạn đang bắt kịp bài đọc của mình, hãy đảm bảo rằng bạn cũng bảo vệ trang web khỏi các lỗ hổng phổ biến. nếu bạn đã ở trong tình thế phải sử dụng chuyển hướng PHP, có khả năng bảo mật trang web của bạn sẽ cần được kiểm tra

Các phương pháp khác

Với tất cả những vấn đề này, có lẽ bạn đang tự hỏi tại sao bạn lại sử dụng chuyển hướng PHP. Đó là một câu hỏi chính đáng. Mặc dù các chuyển hướng PHP thường được thực hiện nhanh hơn các loại chuyển hướng khác và do đó có thể là một công cụ quan trọng trong việc cải thiện tốc độ trang web, vẫn có các tùy chọn khác

There are two main approaches to doing this. You can either use the HTML element to redirect from within the HTML portion of your page,  or use JavaScript. The first approach – using would look like this:

Cách tiếp cận thứ hai – sử dụng JavaScript – thanh lịch hơn một chút và chắc chắn trông chuyên nghiệp hơn

window.location.replace["//newpage.php/"];

Cả hai cách tiếp cận này sẽ thực thi chậm hơn một chút so với chuyển hướng tiêu đề [] ngay lập tức, nhưng được cho là linh hoạt hơn

Đảm bảo trang web của bạn có thể xử lý mọi thứ – từ lưu lượng truy cập cao đến thời gian tải nhanh, v.v. Mua dịch vụ lưu trữ web

Một Lời Cuối Cùng

Mặc dù làm theo các bước trên có nghĩa là chuyển hướng PHP của bạn thực thi an toàn, nhưng nếu bạn đang ở vị trí sử dụng nhiều chuyển hướng PHP, có lẽ đã đến lúc bạn nên suy nghĩ lại về cấu trúc trang web của mình

Có một vài lý do chính đáng để làm điều đó. Đầu tiên là không phải tất cả các máy chủ web đều được tạo ra như nhau và nếu bạn đang gửi tất cả khách truy cập của mình trên một tuyến đường vòng quanh trang web của mình, điều này sẽ ảnh hưởng đến hiệu suất của nó. Điều này có thể được cải thiện ở một mức độ nào đó bằng cách sử dụng một nhà cung cấp dịch vụ lưu trữ web giá cả phải chăng, nhưng chỉ ở một mức độ nhất định

Lý do thứ hai là trang bạn đang chuyển hướng có thể đang thu thập dữ liệu về khách truy cập mà bạn không biết, đặc biệt nếu bạn đang sử dụng phần mềm phân tích trang web để theo dõi hiệu suất trang web của mình. Trong thế giới hậu GDPR của chúng ta, điều đó có thể gây ra những hậu quả đáng kể

Vì vậy, tóm lại. hãy cẩn thận với các chuyển hướng PHP, sử dụng chúng đúng cách và chỉ sử dụng chúng ở đâu và khi nào bạn thực sự phải làm

Tác giả

Dominyka tôi

Dominykas bắt đầu với tư cách là Chuyên gia tiếp thị và hiện đang làm việc với tư cách là Biên tập viên nội dung và Trưởng nhóm. Khi không đảm bảo chất lượng bài viết, anh ấy thích vừa đọc vừa viết tiểu thuyết

Thêm từ Dominykas I

Đồng tác giả

Ignas T

Ignas là một phần của đội ngũ Kỹ thuật của Hostinger. Anh ấy đảm nhận việc quản trị và giám sát máy chủ, đặc biệt tập trung vào ảo hóa phần mềm. Trong thời gian rảnh rỗi, anh ấy luôn sẵn sàng cho một chuyến phiêu lưu trượt tuyết hoặc chèo thuyền kayak hoặc một đêm trò chơi trên bàn cờ

Làm cách nào để chuyển hướng một liên kết đến một trang khác trong PHP?

Chuyển hướng từ trang này sang trang khác trong PHP thường được thực hiện bằng hai cách sau. Sử dụng hàm tiêu đề trong PHP . Hàm header[] là một hàm có sẵn trong PHP được sử dụng để gửi tiêu đề HTTP [Giao thức truyền siêu văn bản] thô tới máy khách.

Làm cách nào để chuyển hướng đến một trang khác trong PHP bằng câu lệnh if?

Nếu bạn đang sử dụng hai phép so sánh, bạn phải sử dụng && hoặc. ở giữa chúng . Nếu bạn đang sử dụng = trong câu lệnh if và otherif thì nó sẽ luôn trả về true. ? . kết quả.

Chủ Đề