Làm cách nào để chuyển hướng đến một trang khác trong PHP với các tham số?

Chuyển hướng với dữ liệu được mã hóa dưới dạng tham số URL [phương thức GET] có thể là một vấn đề khi dữ liệu cần được bảo mật — dù có được chuyển hướng đến một máy chủ an toàn hay không. Dưới đây là ví dụ về dữ liệu được mã hóa dưới dạng tham số URL

//example.com/page.php?name=Will&password=Ouch

Ngay cả khi URL là một máy chủ an toàn, bản thân URL đó [bao gồm cả thông tin tham số] không được mã hóa. Hơn nữa, thông tin tham số được tiết lộ trên thanh địa chỉ của trình duyệt

Thay vì phương thức GET, hãy chuyển hướng trình duyệt bằng phương thức POST để dữ liệu mà chúng mang theo không bị tiết lộ cùng với URL

Đây là bí mật. Chuyển hướng bằng biểu mẫu tự gửi.

Tạo biểu mẫu trong tập lệnh PHP của bạn. Sử dụng JavaScript để gửi biểu mẫu

Hàm PHP RedirectWithMethodPost[] [mã nguồn bên dưới], được gọi với URL sẽ được sử dụng nếu chuyển hướng là chuyển hướng GET chung. Ví dụ

RedirectWithMethodPost["//example.com/page.php?name=Will&password=NotOuch"];

Một chức năng sao chép và dán PHP cho phép bạn chuyển hướng trình duyệt bằng phương thức POST

Tweet cái này đi

Lệnh gọi hàm đó khiến một biểu mẫu được tạo bằng JavaScript tự động gửi dữ liệu theo phương thức đăng, chuyển hướng trình duyệt trong quá trình này

Ghi chú. Để kiểm tra xem dữ liệu của bạn có được gửi như mong đợi hay không, bạn có thể sử dụng công cụ hữu ích tại bài viết A Nice Data Dump

Đây là biểu mẫu RedirectWithMethodPost[] được tạo khi sử dụng lệnh gọi hàm ví dụ trên. [Bạn không phải làm bất cứ điều gì với mẫu đơn này. Nó chỉ dành cho thông tin. RedirectWithMethodPost[] tự động tạo biểu mẫu và khiến biểu mẫu được gửi. ]



Click the button if page doesn't redirect within 3 seconds.

function DisplayButton[] { document.getElementById["the-button"].style.display="block"; } setTimeout[DisplayButton,3000]; document.getElementById["the-form"].submit[];

Được rồi, đây là hàm RedirectWithMethodPost[]. Dán nó vào tập lệnh PHP của bạn để có chức năng chuyển hướng phương thức POST

function RedirectWithMethodPost[$dest]
{
   $url = $params = '';
   if[ strpos[$dest,'?'] ] { list[$url,$params] = explode['?',$dest,2]; }
   else { $url = $dest; }
   echo "\n";
   foreach[ explode['&',$params] as $kv ]
   {
      if[ strpos[$kv,'='] === false ] { continue; }
      list[$k,$v] = explode['=',$kv,2];
      echo "\n";
   }
   echo 

Chủ Đề