1

我创建了一个表单,用于获取有关他离开的城市的用户数据。该表单将数据存储在一个名为 profile 的表中。我正在使用一个将数据插入配置文件表的函数。如果已经有数据,该函数只会更新表。如果用户没有在 city 字段中插入数据并按下提交,表格将继续保留之前的数据,因为没有提交。

在表单中,我想进行验证,以便用户仅插入 az 或空格字符。

我使用以下代码进行验证:

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>';
     }

    }
   }

有用!但是现在的问题是,如果用户将表单留空并按提交,上面的代码会强制他放置数据(说:城市必须只包含 az 和空格)。仅当用户输入数据时,如何使用上述代码验证表单。如果没有,那么继续没有任何问题。

4

1 回答 1

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 之前。

于 2013-02-24T18:56:13.597 回答