0
if(isset($_POST['submit'])){
//code here
}

如果我错了,请纠正我,但我相信如果用户使用“输入”键提交表单,上面的代码将不起作用。

这是真的?如果是这样,我是否可以使用另一个 if 语句来代替使用提交按钮和按下回车键的用户?

4

5 回答 5

7

要检查表单是否已发布到服务器,请使用:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // …
}
于 2012-10-05T16:21:24.373 回答
4

如果您不确定是否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") {
    // ...
}
于 2012-10-05T16:20:31.580 回答
3

这不是真的,如果submit是默认提交按钮。

另外,如果我理解您的意图,我认为$_SERVER['REQUEST_METHOD']POST提交表单或其他方式时会这样做。GET

于 2012-10-05T16:20:17.150 回答
1

我将扩展其他答案:如果submitinput type=submit并且输入键触发该按钮,则可能不是真的。如果它是type=img或 a <button>,则输入键的行为可能会有所不同(并且可能不会设置该_POST值)。

于 2012-10-05T16:22:13.637 回答
0

如果提交是页面上唯一的提交按钮,或者页面上的第一个提交按钮(如果有多个),那么提交应该没问题,这可能不太可能。

另一种方法是使用隐藏输入。

例如

<input type="hidden" id="processed" name="processed" value="1" />

然后在您的提交脚本中

if(isset($_POST['processed'])){
    //code here
}
于 2012-10-05T16:22:32.753 回答