在表单发布时,GET变量是否在URL中得到了改进?

时间:2013-06-05 20:51:44

标签: php html forms

我试过搜索,但没有看到这个问题的答案。这是一个简单的表格:

<form action="" method="post">
<input type="hidden" name="test" value="1">
<input type="submit">
</form>

我将该代码放入test.html并浏览到:

/test.html?test=test

提交表单后,变量test仍在URL中。我认为提交的表单会消除GET参数,但事实并非如此。

所有浏览器都会出现此行为,或者这是FireFox特有的内容吗?

2 个答案:

答案 0 :(得分:3)

带有method="get"的表单会覆盖任何现有的GET参数。但是,带method="post"的表单会保留它们。

如果您想手动删除它们,请尝试action="<?=$_SERVER['PHP_SELF']?>"(或针对PHP 5.3及以下版本:action="<?php echo $_SERVER['PHP_SELF'] ?>"

答案 1 :(得分:3)

“POST”和“GET”参数在PHP中非常用词。无论请求的类型如何,URL都可以包含查询参数。 POST请求可以包含请求正文数据。 URL查询参数最终在PHP $_GET中,$_POST中POST请求的URL编码正文数据。在PHP“$_GET”命名法之外,确实没有“GET参数”这样的东西。

没有指定操作的表单会提交到当前的网址,包括任何网址查询参数

希望现在更有意义。