我正在尝试使用php表单字段进行验证,而我正在进行攻击。问题是,有问题的表单字段为以括号结尾的字段生成NAME,如下所示: customFieldValue_1 [] 当我输入验证码以使其成为必需时,如下所示:
if(empty($post['customFieldValue_1[]']))
{
$message .= '<li>Please enter your Serial Number</li>';
$valid = false;
}
它不起作用,即使您在字段中放置了一些内容,它也会显示消息并且不保存帖子。如果我从Brackets中取消,如果该字段为空,则不会验证并保存。括号是模板页面中程序的一部分,如果我在那里删除它们,验证工作正常,但在字段数据应该是的情况下抛出PHP IMPLODE错误。我已经向开发人员寻求帮助,但是他们似乎并没有太好地阅读英文,并且继续给我相同的代码,但这些代码不起作用。任何人都看过这个,其中括号会杀死验证,我该如何解决它?
答案 0 :(得分:1)
[]表示它是一个输入数组。括号不是名称的一部分。
尝试这样检查:
if(empty($post['customFieldValue_1'][0]))
答案 1 :(得分:1)
PHP将尝试以不同的格式访问post数组,例如:
$_POST["customFieldValue_1"][0]
您是否可以在表单标记名称中添加其他值?
例如:<input type="text" name="customFieldValue_1[field]">
如果是这样,您可以使用$_POST["customFieldValue_1]["field"]
或使用零索引访问它,如上所示。例如:
<?php
$message = "";
$valid = true;
if ($_POST) {
if (empty($_POST["customFieldValue_1"][0])) {
$message .= '<li>Please enter your Serial Number</li>';
$valid = false;
}
}
?>
<form name="my_form" method="post">
<input type="text" name="customFieldValue_1[]">
<input type="submit" />
</form>
<?php
var_dump($message);
echo "<br />";
var_dump($valid);
?>
答案 2 :(得分:-1)
就像这样使用
if(empty($_POST['customFieldValue_1'])) {
// ...
}