Heim  >  Fragen und Antworten  >  Hauptteil

Umgang mit namenlosen Formular-Sendeschaltflächen: Eine Anleitung

Ich habe ein Suchformular und die Schaltfläche „Senden“ sieht so aus:

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

Ich verwende das folgende PHP, um dieses Formular zu verwalten:

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

Funktioniert gut. Aber meine URL enthält dann &search_submit=Go. Ich möchte nicht, dass es angezeigt wird.

Ich weiß, dass ich zur Behebung dieses Problems das Namensattribut aus der Formulareingabezeile entfernen muss.

Aber mein PHP funktioniert nicht mehr und ich weiß nicht, wie ich es ändern soll, um mit dem Formular umzugehen. Ich habe versucht, es zu ändern:

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

und

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

Aber sie funktionieren auch nicht. Es wäre großartig, wenn mir jemand bei der Beantwortung dieser Frage helfen könnte.

P粉348915572P粉348915572282 Tage vor362

Antworte allen(2)Ich werde antworten

  • 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
    }

    Antwort
    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
    }

    Antwort
    0
  • StornierenAntwort