我有一个搜索表单,提交按钮如下所示:
<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']))
但他们也没有工作。如果有人能帮我解答,那就太棒了。
答案 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
方法。 GET
和POST
之间的主要区别如下:
获取强>:
发表强>:
示例代码:
if (isset($_POST["search_submit"])) {
do blah
}
答案 2 :(得分:0)
如果提交按钮没有名称,那么它就不会是一个成功的控件,并且根本不会出现在提交的数据中。
测试表格中某些其他字段是否存在数据。