处理无名表单提交按钮:指南
P粉348915572
P粉348915572 2024-02-03 19:05:42
0
2
342

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

<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学习者快速成长!