我创建了一个表单,用于获取有关他离开的城市的用户数据。表单将数据存储在名为profile的表中。我正在使用一个将数据插入配置文件表的函数。如果已有数据,则该函数仅更新表。如果用户未将数据插入城市字段并按提交,则表格将继续保留以前的数据,因为没有提交。
在表单中,我想进行验证,以便用户只插入a-z或空格字符。
我已使用以下代码进行验证:
if( empty($_POST) === false ){
if( empty($errors) === true ){
if( preg_match('/^[a-zA-Z ]+$/', $_POST['city']) ===0 ){
$errors[]='<font color="#963">City must only contains a-z and spaces</font>';
}
}
}
有效!但现在的问题是,如果用户将表单保留为空并按下提交,则上述代码会强制他放置数据(说:City必须只包含a-z和空格)。仅当用户输入数据时,如何使用上述代码验证表单。如果没有那么继续没有任何问题。
答案 0 :(得分:0)
您甚至可以在不生成错误的情况下执行此操作。取代
if( preg_match('/^[a-zA-Z ]+$/', $_POST['city']) ===0 ){
使用
$_POST['city'] = preg_replace("&[^a-zA-Z ]&","",$_POST['city']);
在插入数据库之前,这将替换所有非小写字母和非空格。
修改强>
如果您仍想生成错误,请使用
if( preg_match("&[^a-zA-Z ]&",$_POST['city']) ){
$errors[]='<font color="#963">City must only contains a-z and spaces</font>';
}
在preg_replace之前。