我有一个表单,其中文本字段是动态创建的,名称未知。我试图获取这些文本字段的名称和值,并使用以下PHP代码。
foreach ($_POST as $key => $entry)
{
if (is_array($entry))
{
foreach($entry as $value)
{
print $key . ": " . $value . "<br>";
}
}
else
{
print $key . ": " . $entry . "<br>";
}
}
但问题是它获取所有隐藏字段并提交按钮值。我该如何防止这种情况发生?
答案 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_
),然后只需检查密钥是否以其中一个不需要的名称开头。