PHP空字段验证


PHP empty field validation

我有一个注册表格,用户必须在其中输入地址。我正在使用PHP进行验证,目前我进行检查以确保字段不为空。这是我的代码:

if (empty($_POST['address'])) {
    $msg = 'You must enter an address' ;
} else {
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ;
}

现在的问题是,用户通过按空格键进入一个"空白"空间,该字段通过了验证。我需要的是一种方法,以确保用户真正输入了一个城市,而不仅仅是一个空格或几个空格。

您已经在插入中使用了trim(),为什么不在开始时调用它一次,并测试该值呢?

$user_address = trim($_POST['address']);
if (empty($user_address)) {
    $msg = 'You must enter an address' ;
} else {
    $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ;
}
if (empty($_POST['address']) || strlen(trim($_POST['address']))==0){
    $msg = 'You must enter an address' ;
}else {
    $address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ;
}

修剪该值。

您需要考虑正则表达式。我一开始会使用一个split命令:split(' ', $address)
从那时起,您可以添加一个额外的else if语句来测试,并查看结果字符串是否为空
但是,更重要的是,您现在将有工具来测试整个地址字符串,看看它是否包含:一个两个字母的状态代码,后面跟着一个逗号,以及一个5(或9)位的邮政编码。(如果你愿意,我可以更具体。)

if($_POST['submit']){
    $address = $_POST['address'];
    if (empty($address)) {
        echo "You must enter an address";
    } else {
        $address = mysqli_real_escape_string($dbc, strip_tags($user_address)) ;
    }
}

如果字段地址为空,则可以立即回显消息

$_POST['submit']还用于确定用户是否单击提交按钮