我读了很多关于检查数据库中是否存在相同电子邮件的问题。然而,这些解决方案都没有考虑到电子邮件提供商(例如google)允许用户在其帐户名称中加点的情况。例如[email protected]
等于[email protected]
。检查是否有已经注册的电子邮件地址(包括点等)
我明白我可以去掉点并像这样检查它,这是个好主意吗?
但我相信还有其他的事情需要在这里考虑。
帮我检查一下数据库中是否有给定的电子邮件,并考虑了点和其他额外的因素。
UPDATE 这是我检查是否有电子邮件地址的方式。
public function isemail($email)
{
$qw = $this->registry->dbi->prepare("SELECT `email` FROM `".PRE."membership` WHERE `email`=?;")->execute($email)->results();
if (empty($qw)) return false;
return true;
}
问题是,例如[email protected]
比[email protected]
不同,因为有一个点。有些电子邮件允许点是相同的帐户,有些则不是。我应该如何表现?
类似的解决方案
解决类似的问题都可以在这里找到
How to check for a duplicate email address in PHP, considering Gmail ([email protected])
为什么重复地址有问题? – Blender 2013-02-25 00:41:55
因为它是一个注册系统,每个登录必须有一封电子邮件。 – Davit 2013-02-25 00:43:27
期限在电子邮件地址rfc5322,rfc5321的本地部分有效。 [email protected]和[email protected]应该被认为是不同的;在电子邮件地址上添加一个唯一的约束就足够了。 (如果主持人选择将我@和我@映射到不在您控制范围内的同一个用户;那么可以选择将我@和mu @映射到同一个用户/帐户) – wildplasser 2013-02-25 00:50:12