我正在处理一些HTML表单,我只是想知道在action属性中使用URL参数是否可以,即使method属性是POST?
<form action="index.php?somefield=someval" method="post">
<input name="anotherfield" value="anothervalue" type="text" />
<input type="submit" />
</form>
嗯,这很好用,我可以在我的回发页面中获取所有字段及其值,但我想知道我是否违反了一些规则,标准或者这样做的东西?如果可以的话,请展示一些可以证明它没问题的资源,因为我无法在W3.org中找到它。
答案 0 :(得分:1)
正如规范RFC1866 section 8.2.3所述:
如果与表单处理相关的服务有副作用 效果(例如,修改数据库或订阅 服务),方法应该是'POST'。
处理其操作URL为HTTP URL且方法为的表单 'POST',用户代理使用。进行HTTP POST事务 操作URI和类型为'application / x-www-form-的消息体 urlencoded'格式如上。用户代理应该显示 来自HTTP POST交互的响应就像显示它一样 来自上面的HTTP GET的响应。
发送POST
请求时,表单数据实际上是在请求正文中发送的,而不是在标头中发送的。因此请求URL(表单的action
)与请求正文不同。
在后台发送到服务器的数据如下所示:
POST /path/script.php?somefield=somevar HTTP/1.1
User-Agent: User-Agent-String/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 32
home=Cosby&favorite+flavor=flies
答案 1 :(得分:0)
只要您的代码一致且有效,您应该没问题。只有在你有理由的情况下才能分离参数,然后将其记录下来以便明白为什么以后出现的任何人。
当然要测试它以确保它有效。它可能不标准,但如果你有某些理由没有什么可说的,你就做不到。
答案 2 :(得分:0)
它有效,但有时可能令人困惑。如果您的somefield = someval与您的表单相关,那么最好这样做:
<form action="index.php" method="POST">
<input name="somefield" value="someval" type="hidden" />
<input name="anotherfield" value="anothervalue" type="text" />
<input type="submit" />
</form>
但是如果你的somefield = someval与表单无关,那么你应该将它保持为GET,这样它就不会成为表单数据的一部分。
答案 3 :(得分:-1)
您可以使用$ _REQUEST [“name”]从get或post模式获取值。 Check out 了解更多详情