检查表单是否已经提交 – PHP

检查一个表单是否被提交以确定我是否应该将表单的variables传递给我的validation类的最好方法是什么?

首先我想也许:

isset($_POST) 

但是随着超全球化的到来,这将永远是真实的。 我不想在我的表单的每个元素迭代:

 if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc 

在写这个问题的时候,我想到了一个更基本的解决scheme,添加一个隐藏字段作为我可以检查的标志。

有没有比join我自己的国旗更“干净”的方法呢?

一般检查是否有POST动作使用:

 if (!empty($_POST)) 

编辑 :如评论中所述,这种方法在某些情况下不起作用(例如,使用checkbox和没有名字的button)。 你真的应该使用:

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

怎么样

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

实际上,提交button已经执行了这个function。

尝试在表格中:

 <form method="post"> <input type="submit" name="treasure" value="go!"> </form> 

然后在PHP处理程序中:

 if (isset($_POST['treasure'])){ echo "treasure will be set if the form has been submitted (to TRUE, I believe)"; } 

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

使用

 if(isset($_POST['submit'])) // name of your submit button 

尝试这个

  <form action="" method="POST" id="formaddtask"> Add Task: <input type="text"name="newtaskname" /> <input type="submit" value="Submit"/> </form> //Check if the form is submitted if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['newtaskname'])){ } 

你也可以使用:

 is_array($_POST)