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)决定。,可能会发生什么。
答案 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