處理無名表單提交按鈕:指南
P粉348915572
P粉348915572 2024-02-03 19:05:42
0
2
363

我有一個搜尋表單,提交按鈕如下所示:

<input type="submit" name="search_submit" value="Go"/>

我使用以下 php 處理此表單:

if (isset($_GET['search_submit'])) {
    do blah
}

工作正常。但我的網址隨後包含 &search_submit=Go。我不想讓它出現。

我知道要解決此問題,我需要從表單輸入行中刪除 name 屬性。

但是我的 php 不再工作,我不知道如何更改它來處理表單。我嘗試將其更改為:

if (isset($_GET['submit']))

if (isset($_GET['Go']))

但它們也不起作用。如果有人能幫我解答,那就太好了。

P粉348915572
P粉348915572

全部回覆(2)
P粉464113078

如果你不想在URL中顯示字串,你可以使用POST方法。 GETPOST 之間的主要差異如下:

取得

  • 參數保留在瀏覽器歷史記錄中,因為它們是 URL 的一部分 可以加書籤。
  • 發送時不應使用 GET 方法
  • 密碼或其他敏感資訊。
  • 最多 7607 個字符 尺寸。
  • 網址範例:new.php?category=sport

發布

  • 參數不會儲存在瀏覽器歷史記錄中。
  • 無法加入書籤。
  • 發送密碼或其他內容時使用的 POST 方法 敏感資訊。
  • POST 方法的最大大小為 8 Mb。
  • 網址範例:new.php

範例程式碼:

#
if (isset($_POST["search_submit"])) {
    do blah
}
P粉956441054

您無法刪除輸入元素的名稱,因為 PHP 不知道要尋找哪個值。如果您想要完全隱藏 URL 後面的字串,請使用 請求方法 POST GET:


您的 PHP 將使用以下內容:

$_POST['search_submit']; // Instead of $_GET['search_submit'];

關於何時使用 GET 和 POST 的一個很好的答案可以在此處找到。


編輯:如果您只是不想讓該按鈕顯示在URL 中,但其他所有內容仍應在那裡(根據您的評論),您可以簡單地刪除兩者提交按鈕的值和名稱。

您可以尋找其他值,而不是尋找要設定的 search_submit

if (isset($_GET['username'], $_GET['password'])) {
    // Do your stuff here
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!