if(isset($_POST['submit'])){
//code here
}
如果我错了,请纠正我,但我相信如果用户使用“回车”键提交表单,上面的代码将无效。
这是真的吗?如果是这样,是否有另一个if语句我可以使用而不是用来覆盖用户使用提交按钮并按回车键?
答案 0 :(得分:7)
要检查表单是否已发布到服务器,请使用:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// …
}
答案 1 :(得分:4)
如果您不确定submit
是否在POST中,您可以使用overkill方法:在此<input>
中使用一些唯一名称创建隐藏<form>
并验证它是否在POST数据中:
<input type="hidden" name="some_name" value="OK" />
在PHP代码中:
if (isset($_POST['some_name']) && $_POST['some_name'] == "OK") {
// ...
}
答案 2 :(得分:3)
如果submit
是默认提交按钮,则不是这样。
此外,还有$_SERVER['REQUEST_METHOD']
- 我认为当您提交表单时会POST
或GET
,否则,如果我理解您的意图是正确的。
答案 3 :(得分:1)
我将扩展其他答案:如果submit
为input type=submit
且输入键触发该按钮,则可能不是这样。如果是type=img
或<button>
,则输入键的行为可能会有所不同(并且可能不会设置_POST
值。
答案 4 :(得分:0)
如果提交是页面上的唯一提交按钮或页面上的第一个提交按钮,则提交应该没有问题,这可能不太可能。
另一种方法是使用隐藏输入。
e.g。
<input type="hidden" id="processed" name="processed" value="1" />
然后在你的提交脚本中
if(isset($_POST['processed'])){
//code here
}