如何检查表单是否已提交?

时间:2011-08-16 09:55:11

标签: php

HTML:

<form name="myform" action="process.php" method="POST">
    <input type="hidden" name="check_submit" value="1" />
    <!-- ........ -->
</form>

PHP:

if (array_key_exists('check_submit', $_POST)) {....}

为什么array_key_exists('check_submit', $_POST)可以检查表单是否已提交?

我之前看过isset($_POST['...']),但不是这个。

如果我不做这个array_key_exists('check_submit',$ _POST)决定。,可能会发生什么。

4 个答案:

答案 0 :(得分:3)

要检查您的页面是否因为表单提交而被调用(通过POST),您应该使用以下内容:

if ($_SERVER['REQUEST_METHOD'] == 'POST')

您不应该仅使用隐藏的表单元素来检查表单是否已提交。如果使用请求方法,则可以更清晰地捕获它,如果表单ids / names / values被更改,则没有任何问题。

答案 1 :(得分:1)

check_submit是表单中的字段,因此当您提交表单时,POST数据中会显示该字段。

PHP将传入的POST - 方法表单数据放入$_POST超全局数组中,您的代码确定是否可以在该数组中找到check_submit字段。

实际上,它与isset($_POST['check_submit'])非常相似,因为它会检查$_POST中是否存在这样的元素。它采取了略微不同的方法。


如果您没有提交表格,那么当然没有表格数据。

答案 2 :(得分:0)

你的意思不是:

 if(!empty($_POST) && isset($_POST['check_submit']) && $_POST['check_submit'] == '1'){
   // do something
 }

答案 3 :(得分:0)

执行var_dump($_POST),您将看到$ _POST关联数组,它将具有check_submit键,并且值= 1