PHP 5.2中电子邮件的验证


Validation of Email in PHP 5.2?

嗨,我在PHP5.2中对电子邮件进行验证时出错请参阅下面的代码:我已经调用了checkemail()并在脚本中编写了函数checkemail。但我遇到了类似错误的错误:键"PRIMARY"的条目"重复,因为我已声明电子邮件id为主键。当我把任何东西放在电子邮件id中时,它就会在数据库中接受。我认为函数执行不正确。指南如果有合适的解决方案。如果需要任何详细信息,请告诉我。

<head>
<script>
  function checkEmail()
  {
    $strEmail= mysql_real_escape_string($_POST['email']);
    if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $strEmail))
    {
      return true;
    }
    else
    {
      return false;
    }
  }
</script>
</head>
<body>
  <div class="container">
    <section id="content">
      <form name="form1" method="post" action="check_register.php">
        <div>
          <input type="text" placeholder="Enter username" required="" id="uname" name="uname"/>
        </div>
        <div>
          <input type="text" placeholder="Enter Email-id" required="" id="email" name="email" onfocus="checkEmail('email');"  />
        </div>
        <div>
          <input type="password" placeholder="Enter Password" required="" id="pass" name="pass"/>
        </div>
        <div>
          <input type="password" placeholder="Repeat Password" required="" id="rpass" name="rpass" onfocus="checkPassword(document.getElementById('pass'), this);" oninput="checkPassword(document.getElementById('pass'), this);"/>
        </div>
        <div>
          <input type="text" placeholder="Enter country" required="" id="country" name="country"/>
        </div>
        <div>
          <input type="submit" value="Register"  />
        </div>
      </form>
    </section>
  </div>
  <script src="form-validation.js"/></script>
</body>

在尝试插入邮件之前,是否检查邮件是否已存在于数据库中?我想你的问题就在这里。不管是html5还是电子邮件的验证。

顺便说一句,请永远不要使用<script>应答器来执行php代码。请改用<?php /* your code here */ ?>

您也可以使用内置的PHP函数来使用filter_var验证您的电子邮件,请查看第一个示例:http://www.php.net/manual/en/filter.examples.validation.php

是的,为什么不使用filter_var

filter_var ($isEmail, FILTER_VALIDATE_EMAIL);

eregi(Posix Regex)已被弃用为PHP 5.3.0。php手动