搜尋

首頁  >  問答  >  主體

處理無名表單提交按鈕:指南

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

<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粉348915572P粉348915572337 天前420

全部回覆(2)我來回復

  • P粉464113078

    P粉4641130782024-02-04 15:15:35

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

    取得

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

    發布

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

    範例程式碼:

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

    回覆
    0
  • P粉956441054

    P粉9564410542024-02-04 12:59:48

    您無法刪除輸入元素的名稱,因為 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
    }

    回覆
    0
  • 取消回覆