<input />验证电子邮件php

时间:2015-08-22 18:04:20

标签: php forms validation if-statement input

我有一个练习来制作一个,并用php验证。 为什么它没有发出错误信息?

如果我只检查名称的长度,那么它的工作原理。如果我只检查关于正确角色的名称,那么它也有效。错误检查错误了什么?

<?php
  //Values set?
  if(isset($_POST['name'])){
    $errors = [];

    //Error check
    if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) && strlen($_POST['name']) < 2) {
      $errors['name'] = 'Please put in your name.';
    }
  }
?>
<p>Input your name</p>
<?php
  //Show Errors
  if (isset($errors['name'])){
     echo '<p>' . $errors['name'] . '</p>';
  }
?>
<input type="Text" name="name">
<input type="submit" name="submit" value="send">

3 个答案:

答案 0 :(得分:1)

也许您应该使用OR(||)代替AND(&&):

if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) || strlen($_POST['name']) < 2)

答案 1 :(得分:1)

使用此:

Closure

与||操作员代替&amp;&amp;。

答案 2 :(得分:1)

您在输入字段中输入了什么内容?电子邮件在哪里?

如果您想制作电子邮件输入字段,可以执行以下操作:

tweet1

最重要的是,目前,如果你输入的电子邮件至少有两个字符长,那么If语句将会通过,因为你正在使用AND。你应该像这样使用OR:

<input type="email" name="name">

正如通知:如果输入字符串是电子邮件,您可以轻松使用以下PHP函数进行验证:

if (!preg_match("/^[a-zA-Z ]*$/",$_POST['name']) || strlen($_POST['name']) < 2)