如何在提交按钮没有名称时处理表单提交按钮

时间:2014-07-01 08:30:56

标签: php button submit

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

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

我使用以下php处理此表单:

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

工作正常。但我的网址包括&amp; search_submit = Go。我不想让它出现。

我知道要解决这个问题,我需要从表单输入行中删除name属性。

然后我的php不再有效,我不知道如何更改它来处理表单。我尝试将其更改为:

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

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

但他们也没有工作。如果有人能帮我解答,那就太棒了。

3 个答案:

答案 0 :(得分:1)

您无法删除input元素的名称,因为PHP不知道要查找哪个值。如果您想在网址后完全隐藏字符串,请使用request method POST代替GET

<form action='myscript.php' method='POST'>
    <input type="submit" name="search_submit" value="Go"/>
</form>

您的PHP将使用以下内容:

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

可以找到何时使用GET和POST的好答案here


编辑:如果您只是想让按钮不显示在网址中,但其他所有内容仍然存在(根据您的comment),您只需删除提交按钮的值和名称。

您可以查找其他值,而不是查找要设置的search_submit

if (isset($_GET['username'], $_GET['password'])) {
    // Do your stuff here
}

答案 1 :(得分:1)

如果您不想在URL中显示字符串,可以使用POST方法。 GETPOST之间的主要区别如下:

获取

  • 参数保留在浏览器历史记录中,因为它们是URL的一部分 可以加入书签。
  • 发送时不应使用GET方法
  • 密码或其他敏感信息。
  • 最多7607个字符 尺寸。
  • Url示例:new.php?category = sport

发表

  • 参数未保存在浏览器历史记录中。
  • 无法加入书签。
  • 发送密码或其他时使用的POST方法 敏感的信息。
  • POST方法的最大大小为8 Mb。
  • 网址示例:new.php

示例代码:

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

答案 2 :(得分:0)

如果提交按钮没有名称,那么它就不会是一个成功的控件,并且根本不会出现在提交的数据中。

测试表格中某些其他字段是否存在数据。