我有一个注册表格,用户必须在其中输入地址。我正在使用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']
还用于确定用户是否单击提交按钮