我有一个注册表单,用户必须在那里输入地址。我正在使用PHP进行验证,目前我检查以确保该字段不为空。这是我的代码:
if (empty($_POST['address'])) {
$msg = 'You must enter an address' ;
} else {
$address = mysqli_real_escape_string($dbc, strip_tags(trim($_POST['address']))) ;
}
现在的问题是,用户通过按空格键进入“空白”空间,文件通过验证。我需要的是确保用户实际输入城市而不仅仅是空格或几个空格的方法。
答案 0 :(得分:4)
您已在插入中使用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)) ;
}
答案 1 :(得分:0)
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']))) ;
}
修剪价值。
答案 2 :(得分:0)
您需要考虑正则表达式。我会开始使用拆分命令:split(' ', $address)
从那时起,您可以添加一个额外的else if
语句来测试并查看结果字符串是否为空
但是,更重要的是,您现在将拥有测试整个地址字符串的工具,以查看它是否包含:两个字母的州代码后跟一个逗号和一个5(或9)个数字的邮政编码。
(如果你愿意,我可以更具体。)
答案 3 :(得分:0)
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']
也是确定用户是否点击了提交按钮