簡體   English   中英

PHP - 從 URL 中刪除參數但仍傳遞到另一個頁面

[英]PHP - remove parameters from URL but still pass to another page

我有一個 php 網站。 第一個頁面包含一個產品列表,我目前正在將 URL 中產品的 ID(從 mysql 數據庫中提取)傳遞到項目頁面,即 localhost/item.php?4

我不想在 URL 中顯示任何參數,因此調查了另一個使用會話的選項。

與此有關的問題是,我的每個項目的鏈接都在一個 while 循環中,從數據庫中檢索 ID 和產品名稱,因此我在單擊項目/鏈接時使會話鏡像 ID 時遇到問題。

這是我的代碼片段(我已刪除會話代碼):

$stmt = $con->prepare("SELECT pid, product_name FROM persons where deleted = ? order by order_age desc");
$stmt->bind_param("i", $del);
$stmt->execute();
$result = $stmt->get_result();

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {

    echo '<tr><td>';
        $phn = $row["pid"];
        echo "<span><a class='storage' href='item.php'>" . $rows["product_name"] . "</a></span>";
}
echo "</td></tr>";
}

我想我有兩個問題:

  1. 是否有可能實現我需要做的
  2. 實現這一目標的正確方法是什么

提前致謝,皮特

選項,簡要

  • 您可以先加載/item.php?id=4然后重定向到/item-hidden.php & 使用$_SERVER['HTTP_REFERER'] & parse_url & 處理引用網址的GET部分。

  • 您也可以為此使用會話。 當頁面加載到長網址時設置會話變量,然后重定向到短網址,加載會話並清除會話。

  • 如果您只想縮短 url,那么您可以使用uniqid()並將唯一 id 放入 url 並將參數保存到具有該唯一 id 的會話變量中。

  • 您可以使用預先制作的網址縮短器

  • 您可以使用包含數組或數據庫的參考文件滾動自己的 url 縮短器。

  • 肯定還有其他我沒有想到的創造性解決方案

我的想法:

  • 完全隱藏 url 會導致糟糕的用戶體驗 - 無法添加書簽,使用后退按鈕會很時髦,很難在社交媒體或博客上分享項目
  • 縮短網址很好,但不是必需的
  • 根據您正在使用的選項,您可能能夠創建更友好的速記,以便在 url 欄中查看或為非常常見的選項集創建 db-references
  • 您正在嘗試做的事情似乎是一個很棒的學習項目 - 了解會話、http_referer、數據庫等。 我認為通過做你想做的事,你會發現你並不真正喜歡它的感覺——或者你可能會想出一個聰明的方法來讓你的 URL 更漂亮,讓用戶體驗變得非常好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM