搜索

首页  >  问答  >  正文

处理无名表单提交按钮:指南

我有一个搜索表单,提交按钮如下所示:

<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粉348915572284 天前367

全部回复(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
  • 取消回复