PHP中的表单字段验证

时间:2014-08-19 13:08:24

标签: php forms validation

我正在尝试使用php表单字段进行验证,而我正在进行攻击。问题是,有问题的表单字段为以括号结尾的字段生成NAME,如下所示: customFieldValue_1 [] 当我输入验证码以使其成为必需时,如下所示:

if(empty($post['customFieldValue_1[]']))
    {
    $message    .= '<li>Please enter your Serial Number</li>';
    $valid  = false;
    }

它不起作用,即使您在字段中放置了一些内容,它也会显示消息并且不保存帖子。如果我从Brackets中取消,如果该字段为空,则不会验证并保存。括号是模板页面中程序的一部分,如果我在那里删除它们,验证工作正常,但在字段数据应该是的情况下抛出PHP IMPLODE错误。我已经向开发人员寻求帮助,但是他们似乎并没有太好地阅读英文,并且继续给我相同的代码,但这些代码不起作用。任何人都看过这个,其中括号会杀死验证,我该如何解决它?

3 个答案:

答案 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'])) {
    // ...
}