【问题标题】:How to validate the username of email address? [duplicate]如何验证电子邮件地址的用户名? [复制]
【发布时间】:2013-11-01 13:17:19
【问题描述】:

我的代码在下面,我可以验证域但无法验证用户名,即使域名有效。

例如:

mon@hotmail.com  --- valid domain valid username  ---- pass
aksjdsk@hotmail.com ----- valid domain invalid username  ---- failed

如果有人可以提供帮助,我们将不胜感激。

function domain_exists($email, $record = 'MX'){
list($user, $domain) = preg_split('/@/', $email);
return checkdnsrr($domain, $record);}

if(!domain_exists($email)){
echo "<script type='text/javascript'>window.alert('No have such email,invalid Domain. please enter valid email address!')</script>";
echo "<script type='text/javascript'>window.location='register.html'</script>";
exit;}

function user_exists($email, $record = 'MX'){
list($user, $domain) = preg_split('/@/', $email);
return checkdnsrr($user, $record);}

if(!user_exists($email)){
echo "<script type='text/javascript'>window.alert('No have such user, please enter valid email address!')</script>";
echo "<script type='text/javascript'>window.location='register.html'</script>";
exit;}

【问题讨论】:

  • 我很确定 DNS 不包含电子邮件用户...的信息
  • 没有成功的方法来使用户名无效..虽然你可以为这样的用户名创建黑名单

标签: php validation email-validation


【解决方案1】:

知道域名中存在特定用户名的唯一方法是向他们发送一封电子邮件,然后让他们点击该电子邮件中提供的链接。

abuse@hotmail.com、x@x.org 和 obama@whitehouse.gov 很可能都是有效的,但这并不意味着他们请求了电子邮件,或者愿意使用您可能发送的任何内容。

【讨论】:

    【解决方案2】:

    某些网站会发送激活电子邮件。也许你必须使用它。

    为这样的电子邮件生成激活码

    <?php $activation_code= md5(microtime().rand(1,9999999)); echo$activation_code; ?>
    

    然后使用用户名的 id 或电子邮件注册此代码数据库并将此代码发送电子邮件。 如果用户在一段时间内不点击它,则删除用户或阻止..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 2014-06-07
      • 2014-11-29
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多