我有以下HTML
<form action="/home" method="post">
<input type="hidden" name="_method" value="POST">
<input type="text" name="var">
<button type="submit">Submit</button>
</form>
在服务器端,我根据我得到的请求类型触发不同的操作。_method
隐藏字段控制该动作。用户不仅可以将值更改为DELETE
并引起混乱吗?我在本地Apache服务器上尝试了它,它确实实际上触发了删除路由,这可能是灾难性的。
我也知道我不是唯一使用此练习的人,因为我在各种框架的官方文档上看到了它,所以我缺少什么?
您可以使用:
检查服务器上的方法名称<?php
if ($_SERVER["REQUEST_METHOD"] == "GET") {
// collect value of input field
}
else{
// Do nothing
}
?>
注意:更改"获取",如您所见。
note2: $ _server [" request_method"]由服务器生成。用户无法编辑它。因此,您可以使用此变量检查哪种请求(获取,发布,放置,...)。
希望它能帮助您!