if(isset($_POST['submit'])){
//code here
}
纠正我,如果我错了,但我相信上面的代码不会工作,如果用户使用“输入”键提交表单。
这是真的吗?如果是这样,是否有另一个if语句可以用来代替这个来覆盖用户使用submit按钮并按下回车键?
if(isset($_POST['submit'])){
//code here
}
纠正我,如果我错了,但我相信上面的代码不会工作,如果用户使用“输入”键提交表单。
这是真的吗?如果是这样,是否有另一个if语句可以用来代替这个来覆盖用户使用submit按钮并按下回车键?
要检查的形式发布到服务器,使用:
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// …
}
+1。检查它是否是POST请求,呃,检查它是否是POST请求。这比检查隐藏的输入更好,希望按钮被称为提交,看着窗外等。 – deizel
或'if(!empty($ _ POST))' – martincarlin87
是的,除非想法是区分不同的提交按钮。我的意思是不同的形式。 –
这是不正确的,如果submit
是默认提交按钮。
此外,还有一个$_SERVER['REQUEST_METHOD']
- 我认为这将是POST
当您提交您的表格或GET
否则,如果我明白你的意图的权利。
如果你不能确定是否submit
将在POST你可以使用矫枉过正的方法:创建隐藏<input>
在此<form>
有一些独特的名称和POST数据如果验证:
<input type="hidden" name="some_name" value="OK" />
而且在PHP代码:
if (isset($_POST['some_name']) && $_POST['some_name'] == "OK") {
// ...
}
这是最有可能矫枉过正考虑的问题。 – Prisoner
这不是过度杀伤,这是一个完全可以接受的答案。 – martincarlin87
这是一个完全可以接受的矫枉过正的答案。如果通过阐述你的意思是为你做,那么''并检查'secret_submit'。 –
我会扩展其他答案:如果submit
是input type=submit
并且回车键触发该按钮,则可能不是这样。如果是type=img
或<button>
,则其行为可能与输入密钥不同(并且可能不会设置该值)。
提交应该没问题,如果它是页面上的唯一提交按钮或页面上的第一个提交按钮(如果有多个提交按钮),这可能不太可能。
另一种方法是使用隐藏的输入。
例如
<input type="hidden" id="processed" name="processed" value="1" />
然后在提交脚本
if(isset($_POST['processed'])){
//code here
}
'id'肯定是一种矫枉过正的行为,它可能会被复制到某个地方;) –
也许,很多人喜欢在它们的输入上有符合名称的id,并且它提供了一个简单的选择器来使用jQuery等。虽然! – martincarlin87
如果重复,*会造成伤害。我不会说'ID'在这里一般是特别有害的,但它肯定不会以任何方式处理这个问题;-) –
我认为,有些IE版本不检测进入键,提交 – FirmView