获取所有POST变量而不是隐藏字段并提交按钮

时间:2011-07-13 11:39:55

标签: php html

我有一个表单,其中文本字段是动态创建的,名称未知。我试图获取这些文本字段的名称和值,并使用以下PHP代码。

foreach ($_POST as $key => $entry)
{
     if (is_array($entry))
     {
        foreach($entry as $value)
        {
           print $key . ": " . $value . "<br>";
        }
     }
    else 
     {
        print $key . ": " . $entry . "<br>";
     }
}

但问题是它获取所有隐藏字段并提交按钮值。我该如何防止这种情况发生?

3 个答案:

答案 0 :(得分:1)

foreach ($_POST as $key => $entry)
{
     if ($key == "button_submit") continue;
     if ($key == "hidden_field") continue;
     if ($key == "hidden_field2") continue;
     if ($key == "hidden_field3") continue;
     if (is_array($entry))
     {
        foreach($entry as $value)
        {
           print $key . ": " . $value . "<br>";
        }
     }
    else 
     {
        print $key . ": " . $entry . "<br>";
     }
}

答案 1 :(得分:0)

除非你知道字段的名称,否则你不能放置约束。

在您的情况下,一种替代解决方案是您可以将条件置于循环中

喜欢

if($key == 'btn_name')
{

   code....

}

else{

   code...

}

答案 2 :(得分:0)

基本上,隐藏字段和提交按钮是表单元素,如果它们在<form>标记内,则应该(必须!)作为POST请求的一部分发送。这是标准行为。否则,服务器将无法确定隐藏字段的值,或确定按下了哪个提交按钮。

因此,如果您不想处理这些字段,则必须设置例外。一个简单的解决方法是对您不希望处理的字段使用命名约定(即hidden_submit_),然后只需检查密钥是否以其中一个不需要的名称开头。