我为什么要使用POST而不是得到什么?(Why do I have to use POST inst

2019-10-18 17:15发布

当我使用<form action="code.php?id=1" method="post"></form>表单ID在URL中传递。 但是当我通过“GET”取代“POST”写相同的代码,该ID是不是传递到URL。

为什么?

Answer 1:

当你提交一个GET表单,表单中的值附加的action URL,如后“查询字符串” ? 。 规定在一个现有的查询字符串action这样的形式的属性将导致不确定性。 浏览器不合并这两个查询字符串,他们只是扔掉旧的查询字符串,并构建基于窗体上的新一个。

用POST形式,没有歧义:从表单中的数据从URL分开发送,所以没有必要的查询字符串被覆盖。

但是,它可能最好不要混用看两种参数,因此该解决方案是始终以包括额外的参数作为隐藏字段,那么它会用GET和POST两种形式的工作:

<input type="hidden" name="id" value="1">


Answer 2:

更好的办法是通过id的隐藏字段。

<form action="code.php" method="post">
    <input type="hidden" value="1" name="id" />
</form>


Answer 3:

如果您的形式如下

<form action="code.php?id=1" method="post">
<input typ"text" name="username" />
<input type="submit" />
</form>

在code.php示例脚本

<?php
print_r($_GET);
print_r($_POST);
print_r($_REQUEST);
?>

您将获得在GET数组后阵列和URL参数形式的数据,请求您将获得无论是在一个阵列获取和发布数据。 但是,如果你从改变后得到方法的URL,而不是添加附加的表单数据。 这个问题是因为含糊不清的。 要获得解决方案,我这种情况,创建一个在您形式的隐藏字段那些你也想与查询字符串发送。



文章来源: Why do I have to use POST instead of GET?
标签: php html post get