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