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

Bài viết này là một Đoạn trích về cách chuyển hướng từ trang này sang trang khác trong PHP sau vài giây. Trong bài viết này, tôi sẽ chỉ cho bạn,

  1. Cách chuyển hướng các trang trong PHP mà không cần đặt thời gian
  2. Cách chuyển hướng các trang trong PHP bằng cách đặt thời gian

Trước khi bắt đầu mã hóa, hãy để tôi giải thích cách thiết lập chủ đề, Đầu tiên tôi sẽ xem xét hai trang PHP trong một thư mục

  1. trang đăng nhập. php
  2. trang chủ. php

Trong trang đăng nhập. trang php, thêm các trường nhập biểu mẫu với tên người dùng, mật khẩu và nút gửi và tạo kiểu cho nó. bất cứ khi nào người dùng cố gắng đăng nhập, trước tiên nó sẽ xác thực biểu mẫu và tiếp theo nếu giá trị biểu mẫu được đặt, nó sẽ chuyển hướng đến trang chủ. php

Đây là giao diện của trang đăng nhập sau khi tạo kiểu cho nó

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

Ghi chú. Tôi đang sử dụng wamp máy chủ cục bộ cho bản demo này. và tôi sẽ không giải thích về HTML và CSS trong bài viết này

Cách chuyển hướng các trang trong PHP mà không cần đặt thời gian

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

mã PHP

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

giải thích mã
bất cứ khi nào người dùng gửi nút đăng nhập, giá trị đã gửi sẽ đặt thành một hàm isset() và tiếp theo nếu người dùng nhập thông tin đăng nhập thì câu lệnh if-else sẽ kiểm tra xem giá trị biểu mẫu có được đặt hay không, nếu giá trị biểu mẫu được đặt thì nó sẽ chuyển hướng đến trang chủ. php và nếu các giá trị biểu mẫu không được đặt, nó sẽ hiển thị thông báo lỗi

bất cứ khi nào thông tin đăng nhập không được đặt, thì người dùng sẽ nhận được thông báo lỗi

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

Cách chuyển hướng các trang trong PHP bằng cách đặt thời gian

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

mã PHP

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

giải thích mã
bất cứ khi nào người dùng gửi nút đăng nhập, giá trị đã gửi sẽ đặt thành một hàm isset() và tiếp theo nếu người dùng nhập thông tin đăng nhập thì câu lệnh if-else sẽ kiểm tra xem giá trị biểu mẫu có được đặt hay không, nếu giá trị biểu mẫu được đặt thì thông báo thành công sẽ hiển thị . php và nếu các giá trị biểu mẫu không được đặt, nó sẽ hiển thị thông báo lỗi

Mã chuyển hướng không có thời gian đặt

header('location:URL ADDRESS');

Mã chuyển hướng với thời gian ba giây được đặt

header('refresh:3; url=URL ADDRESS');

Rajesh DN

Rajesh Dn là nhà phát triển giao diện người dùng tại TCS. anh ấy thích khám phá các công nghệ mới và thích đi chơi với bạn bè và lướt youtube khi rảnh rỗi

Một ví dụ về điều này là một trang gửi biểu mẫu. khi bạn điền và gửi biểu mẫu, trang sẽ tự động chuyển hướng bạn đến một “trang cảm ơn” khác, mà không hiển thị lại biểu mẫu

Trong trường hợp thứ hai, bạn mở URL đầu tiên và trình duyệt của bạn tải trang A. Sau đó, trình duyệt của bạn được chuyển đến trang B, ngay lập tức hoặc sau khi hết thời gian chờ

Loại chuyển hướng này thường xảy ra sau khi thanh toán trực tuyến. trang xác nhận thanh toán cho bạn biết rằng bạn sẽ được chuyển hướng đến trang của cửa hàng sau vài giây

Bây giờ, hãy xem cách bạn có thể thực hiện các thao tác này trong PHP

Cách chuyển hướng trong PHP. chức năng header() .

Trong PHP, bạn có thể thực hiện chuyển hướng trang bằng hàm header()

Hãy xem ngay một ví dụ

header('Location: https://www.google.com/');
die();

Đối số của hàm header() là một chuỗi gồm hai phần

  1. Một “Vị trí” cố định. " phần
  2. URL nơi chuyển hướng người dùng

Ngay sau khi chức năng header() được thực thi, người dùng từ xa sẽ được chuyển hướng đến URL mới

Đây là một chuyển hướng "ngay lập tức". người dùng không nhận được bất kỳ nội dung web nào trước khi chuyển hướng

URL đích phải là một URL tuyệt đối, như. https. //www. Google. com

Tuy nhiên, hầu hết các trình duyệt cũng chấp nhận các URL tương đối. Điều này có thể hữu ích nếu bạn muốn chuyển hướng đến một URL tương đối trên trang web của riêng bạn

Ví dụ

$thankyou_page = 'thank_you.php';
if ($form_data_valid) {
	header('Location: ' . $thankyou_page);
	die();
}

GHI CHÚ

Bạn phải luôn gọi die() sau header(). Nếu không, việc thực thi tập lệnh có thể tiếp tục sau khi chuyển hướng

Chuyển hướng và đầu ra

Hàm header() gửi tiêu đề HTTP tới trình duyệt. Tiêu đề này yêu cầu trình duyệt chuyển đến một URL khác

Điều quan trọng là phải gọi header() trước khi bất kỳ đầu ra nào được gửi tới trình duyệt, bao gồm

  • Bất kỳ HTML nào bên ngoài các thẻ PHP
  • Bất kỳ văn bản hoặc dữ liệu nào được in bằng PHP

Để hiểu rõ hơn điều đó có nghĩa là gì, đây là ba ví dụ sai

Ví dụ sai số 1. Đầu ra HTML trước tiêu đề()

<html>
<?php
header('Location: https://www.google.com/');
die();

 

Ví dụ sai #2. văn bản được in bằng PHP trước tiêu đề()

echo 'Redirecting...';
header('Location: https://www.google.com/');
die();

 

Ví dụ sai số 3. một dòng trắng trước header() (điều này xảy ra nếu bạn để một hoặc nhiều dòng trống trước thẻ mở PHP)


<?php
header('Location: https://www.google.com/');
die();

 

Nhưng nếu chuyển hướng đến sau khi một số đầu ra đã được gửi thì sao?

Trong những trường hợp này, bạn có ba lựa chọn

  • Lưu đầu ra trong một biến (thay vì lặp lại nó)
  • Sử dụng bộ đệm đầu ra
  • Sử dụng chuyển hướng front-end

Giải pháp đầu tiên là dễ nhất. Về cơ bản, thay vì sử dụng tiếng vang hoặc các lệnh tương tự, bạn lưu tất cả đầu ra bên trong một biến

Sau đó, bạn chỉ xuất biến nếu không có chuyển hướng nào xảy ra

Ví dụ


$html = '<html><head></head>';
$redirect = TRUE;
if ($redirect) {
   
   header('Location: https://www.google.com/');
   die();
}
else {
   echo $html;
}

 

Bây giờ hãy xem bộ đệm đầu ra

Bộ đệm đầu ra làm cho tập lệnh PHP của bạn giữ tất cả đầu ra cho đến khi kết thúc tập lệnh

Vì vậy, về cơ bản, nó thực hiện chính xác những gì bạn cần mà không cần phải sử dụng các biến một cách rõ ràng

Sử dụng bộ đệm đầu ra rất đơn giản. Bạn chỉ cần gọi ob_start() khi bạn muốn bộ đệm bắt đầu và sau đó gọi ob_end_flush() khi bạn muốn gửi tất cả bộ đệm

Đây là cách nó hoạt động

________số 8_______

 

Bây giờ, hãy xem cách hoạt động của chuyển hướng front-end

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

Một cách khác để thực hiện chuyển hướng là sử dụng thẻ meta HTML cụ thể

Thẻ này phải được thêm vào trang HTML mà bạn tạo bằng PHP. Sau khi trình duyệt đã tải trang, nó sẽ đọc thẻ chuyển hướng và thực thi nó

Trái ngược với chuyển hướng PHP, đây không phải là chuyển hướng ngay lập tức, vì trình duyệt tải trang đầu tiên trước khi thực hiện chuyển hướng

Hãy xem một ví dụ

<html>
   <head>
      <meta http-equiv="refresh" content="0; url=https://www.google.com/">
   </head>
   <body>
   ...
   </body>
</html>

 

Thẻ chuyển hướng là thẻ meta HTML có thuộc tính http-equiv=”refresh” và thuộc tính nội dung chứa

  • Một số cho biết phải đợi bao nhiêu giây trước khi chuyển hướng. Nếu được đặt thành 0, chuyển hướng ngay lập tức. Số này được theo sau bởi một ;
  • URL mới, ở dạng url=new_url. Nếu điều này không được đặt, thì URL hiện tại sẽ được tải lại (vì vậy, trên thực tế, nó hoạt động như một tự động làm mới)

Chuyển hướng với JavaScript

Thay vì sử dụng thẻ meta HTML, bạn cũng có thể sử dụng JavaScript để thực hiện chuyển hướng

Trong JavaScript, lệnh chuyển hướng được thực hiện bởi cửa sổ. vị trí. chức năng thay thế ()

Bạn cần làm cho trang thực thi chức năng này khi bạn muốn thực hiện chuyển hướng, thường là ngay sau khi tải trang

Ví dụ

<html>
  <head>
    <script>
      function goToGoogle()
      {
        window.location.replace('https://www.google.com');
      };
    </script>
  </head>
  <body onload="goToGoogle();">
  </body>
</html>

 

Nếu bạn muốn chuyển hướng sau khi hết thời gian chờ, bạn chỉ cần sử dụng hàm JavaScript setTimeout() tiêu chuẩn

Như thế này

<html>
  <head>
    <script>
      function redirectWithTimeout()
      {
        setTimeout(goToGoogle, 5000);
      }
      
      function goToGoogle()
      {
        window.location.replace('https://www.google.com');
      };
      </script>
  </head>
  <body onload="redirectWithTimeout();">
    <p>You will be redirected in 5 seconds.</p>
  </body>
</html>

Mã chuyển hướng HTTP

Hãy quay lại chuyển hướng PHP header()

Khi bạn chuyển hướng bằng hàm header(), bạn cũng có thể chỉ định mã HTTP chuyển hướng tùy chọn

Chuyển hướng được thực hiện vì hai lý do

  1. Bạn chỉ muốn chuyển người dùng sang một trang khác, như trong ví dụ gửi biểu mẫu
  2. Bạn đã chuyển một URL đến một địa chỉ khác, vì vậy bạn muốn chuyển hướng tất cả các yêu cầu từ URL đầu tiên sang URL thứ hai

Khi bạn gửi tiêu đề chuyển hướng, bạn cũng có thể cho trình duyệt biết lý do tại sao chuyển hướng này xảy ra bằng cách gửi tiêu đề HTTP thích hợp

Điều này chủ yếu có liên quan cho mục đích SEO

Đặc biệt, bạn muốn gửi

  • mã 301 nếu trang đã được chuyển vĩnh viễn sang URL mới
  • mã 302 nếu trang đã tạm thời chuyển sang URL mới

Theo mặc định, hàm header() gửi mã 302 – chuyển hướng tạm thời

Thay vào đó, nếu bạn muốn gửi mã 301 vì URL cũ đã được chuyển vĩnh viễn sang URL mới, thì bạn phải chỉ định mã đó một cách rõ ràng

Bạn có thể làm điều đó bằng cách gửi tiêu đề 301 trước tiêu đề chuyển hướng. Như thế này

$thankyou_page = 'thank_you.php';
if ($form_data_valid) {
	header('Location: ' . $thankyou_page);
	die();
}
0

 

Bạn cũng có thể sử dụng đối số header() thứ ba để chỉ định mã phản hồi

$thankyou_page = 'thank_you.php';
if ($form_data_valid) {
	header('Location: ' . $thankyou_page);
	die();
}
1

Phần kết luận

Trong hướng dẫn này, bạn đã học cách chuyển hướng bằng PHP

Bạn đã biết cách sử dụng hàm header() và cách tránh gửi đầu ra trước khi chuyển hướng

Bạn cũng đã xem cách thực hiện chuyển hướng giao diện người dùng bằng thẻ meta HTML và bằng JavaScript cũng như cách chỉ định loại chuyển hướng (301 và 302)

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

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 một trang sau 10 giây trong PHP?

Bạn có thể thử điều này. header('Làm mới. 10; . // trang web của bạn. com/trang. php'); Trong đó 10 tính bằng giây . Lưu câu trả lời này.

Làm cách nào để chuyển hướng người dùng trong PHP?

Hàm tiêu đề trong PHP có thể được sử dụng để chuyển hướng người dùng từ trang này sang trang khác . Đây là một chức năng được xây dựng để gửi tiêu đề HTTP thô đến đích (máy khách). 'header_value' trong hàm được sử dụng để lưu trữ chuỗi tiêu đề. Tham số 'replace_value' lưu giá trị cần thay thế.

Làm cách nào để chuyển hướng đến cùng một trang với một thông báo trong PHP?

$actual_link = "http. //". $_SERVER [ 'HTTP_HOST' ]. $_SERVER [ 'REQUEST_URI' ];