データベースに同じメールが保存されているかどうかを確認するための質問をたくさん読みました。ただし、これらのソリューションはいずれも、Googleなどの電子メールプロバイダーがユーザーにアカウント名にドットを含めることを許可している状況を考慮していません。たとえば、username@gmail.com
に等しいuser.name@gmail.com
。
ドットをはがしてこのようにチェックできると思いますが、いいアイデアですか?
しかし、ここで考慮する必要があることは他にもあると思います。
ドットやその他の追加要素を考慮して、データベースに特定の電子メールがすでにあるかどうかを確認するのを手伝ってください。
更新 これは、すでにメールアドレスがあるかどうかを確認する方法です。
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;
}
問題は、たとえばドットがあるためonetwo@gmail.com
とは異なることです。one.two@gmail.com
一部の電子メールでは、ドットを同じアカウントに使用できますが、許可しないものもあります。私はどのように振る舞うべきですか?
同様のソリューション
同様の質問に対する解決策はここにあります
Gmail(user.name+label@gmail.com)を考慮して、PHPで重複するメールアドレスを確認する方法