【问题标题】:PHP empty field validationPHP空字段验证
【发布时间】:2012-03-25 23:18:31
【问题描述】:

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

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

现在的问题是用户通过按空格键输入“空白”空间,该字段通过验证。我需要一种方法来确保用户实际输入的是一个城市,而不仅仅是一个空格或几个空格。

【问题讨论】:

  • 验证之前只需 trim 变量

标签: php validation


【解决方案1】:

您已经在插入时使用了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)) ;
}

【讨论】:

    【解决方案2】:
    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']))) ;
    }
    

    修剪值。

    【讨论】:

    • . 不是 PHP 中的成员访问运算符,字符串在 PHP 中没有属性,无论如何该条件都不正确。试试strlen(trim($_POST['address'])) === 0
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:
      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'] 也是判断用户是否点击了提交按钮

      【讨论】:

        猜你喜欢
        • 2020-06-14
        • 2012-02-20
        • 1970-01-01
        • 2019-01-07
        • 2014-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多