PHP空和数据验证

时间:2012-06-19 07:22:20

标签: php validation

当用户提交表单时,我正在检查空验证和数据验证。

例如:在数据中,第一个字段是名称,我将检查用户是否输入了除字母字符以外的任何其他字符。如果他已输入,则会向他显示错误消息。名称应至少包含4个字符和最多20个字符

我正在使用此代码,但它无法正常工作。如何检查正则表达式。

$validate = array("Category"=>"$productCategory", "Name" => "$productName");

$error = '';

foreach ($validate as $key => $field) {

    if (preg_match('/^[a-z\d ]{4,20}$/i', $$field)) {
       echo $error .= $field;
    }
}

提前致谢!

2 个答案:

答案 0 :(得分:3)

preg_match中有拼写错误,您输入$$field(2x $)而不是$field,您的正则表达式就可以了:

 - a character between a - z (case insensitive)
or
 - a digit between 0 - 9
or 
 - a "space" character.

更新代码以回答@AndriusNaruševičius评论

$validate = array("Category" => $productCategory, "Name" => $productName);
$error = '';
foreach ($validate as $key => $field)
{
    if (preg_match('/^[a-z\d ]{4,20}$/i',$field))
    {
       $error.= $field;
    }
}

if($error)
{
    echo $error;
    exit;
}

答案 1 :(得分:2)

你的意思是:

$validate = array("Category"=>$productCategory, "Name" => $productName);

foreach ($validate as $key => $field) {

    if (preg_match('/^[\w\d]{4,20}$/i',$field)) {
       echo $error .= $field;
    }
}