Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在验证唯一电子邮件,忽略gmail或其他服务别名_Php_Email Validation - Fatal编程技术网

Php 正在验证唯一电子邮件,忽略gmail或其他服务别名

Php 正在验证唯一电子邮件,忽略gmail或其他服务别名,php,email-validation,Php,Email Validation,这种情况下,我只想接受来自波斯的唯一电子邮件地址,而忽略gmail别名(如果其他服务也有类似的功能) 原因是,我们提供的折扣代码数量有限,公平地说,我们不希望有人只使用一个电子邮件地址申请大额折扣 据我了解: 如果gmail.com或googlemail.com则删除+及其后的任何内容,因为这是别名 如果是gmail,则删除username中被忽略的任何点john.smith@与johnsmith@ 不要仅仅使+符号无效,因为它对电子邮件地址有效 我还需要了解其他哪些服务允许用户将其电子邮件

这种情况下,我只想接受来自波斯的唯一电子邮件地址,而忽略gmail别名(如果其他服务也有类似的功能)

原因是,我们提供的折扣代码数量有限,公平地说,我们不希望有人只使用一个电子邮件地址申请大额折扣

据我了解:

  • 如果
    gmail.com
    googlemail.com
    则删除
    +
    及其后的任何内容,因为这是别名
  • 如果是
    gmail
    ,则删除
    username
    中被忽略的任何点
    john.smith@
    johnsmith@
  • 不要仅仅使
    +
    符号无效,因为它对电子邮件地址有效
我还需要了解其他哪些服务允许用户将其电子邮件地址别名到多个表单中,以及我的场景中的其他注意事项

更新我确实有一个数据库来存储带有电子邮件地址和声明代码的提交

我也明白,很难阻止人们直接申请多个代码。禁止使用别名只是为了尽可能减少它


干杯。

在一个服务(如Gmail)中编写代码来忽略一些已知的别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务

有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址

要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法


我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。

编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务

有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址

要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法


我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。

编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务

有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址

要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法


我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。

编写代码以忽略单一服务(如Gmail)中的一些已知别名格式并不是什么大问题。然而,试图阻止一个人仅仅根据电子邮件地址申请多个折扣是一项不可能的任务

有很多不同的方法来创建新的电子邮件地址和别名。例如,有一些服务可以让你创建一次性电子邮件,通过这些服务,你可以根据需要拥有任意多个不同的地址。此外,只需几美元,您就可以在自己的域中获得自己的电子邮件主机,您可以在其中注册一组地址和/或一个综合地址

要想阻止任何人下定决心要向你索要一大笔折扣,这将需要大量的资源。除了电子邮件地址之外,没有其他识别方法


我会考虑添加其他验证方法。这取决于你在做什么,可能是链接到Facebook,甚至询问信用卡详细信息以进行验证。

在这种情况下,你可以使用Regex。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式):

代码:

$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
    $valid_mails[$key] = preg_replace_callback($pattern, function($match){
        global $symbol_pattern;
        return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
    }, $mail);
}
var_dump($valid_mails);

在这种情况下,可以使用正则表达式。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式):

代码:

$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
    $valid_mails[$key] = preg_replace_callback($pattern, function($match){
        global $symbol_pattern;
        return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
    }, $mail);
}
var_dump($valid_mails);

在这种情况下,可以使用正则表达式。使用此代码,您可以将电子邮件数组转换为别名数组(您可以为每个邮件服务自定义符号模式):

代码:

$mails = ['johnsmith@gmail.com', 'johnsmith@yahoo.com', 'jo.hn.sm.ith@gmail.com'];
$valid_mails = [];
$pattern = "/^(?P<name>[A-Za-z0-9._+\-\']+)@(?P<mail>[A-Za-z0-9.\-]+)\.[A-Za-z]{2,}$/";
$symbol_pattern = ['gmail'=>'/(\.|\+|-)/','yahoo'=>'/(\.)/'];
foreach ($mails as $key=>$mail) {
    $valid_mails[$key] = preg_replace_callback($pattern, function($match){
        global $symbol_pattern;
        return preg_replace($symbol_pattern[$match['mail']], '', $match['name']);
    }, $mail);
}
var_dump($valid_mails);
在这种情况下,你