PHP中如何实现常用邮箱的基本判断

 更新时间:2014年01月07日 16:13:17   作者:  
在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户那就需要过滤了,下面为大家介绍下PHP中实现常用邮箱的判断
越来越多的网站希望用户使用邮箱进行注册,或者是绑定邮箱,这时候就要对邮箱的正确性进行确认,有的人采用发送邮件进行激活的方式来进行判断,从而激活一个账户,但是存在一个问题就是,在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户,那就会造成非活动账号太多,占用数据库存储空间,这边就需要在之前就进行这些邮箱的过滤,因此作者写下下面的一个方法用来过滤邮箱。
复制代码 代码如下:

/**
* @todo 用户输入安全性检测
* @param $inputString 用户输入信息
* @return true/false
* @final 可以根据自己的需求进行过滤内容的变换
*/
public function checkUserInput($inputString){
if (strpos('script', $inputString)!=false){//检测是否含有script脚本
return FALSE;
}else if (strpos('iframe', $inputString)!=false){//检测是否含有iframe框架
return FALSE;
}else {
return TRUE;
}
}

/**
* @todo checkeemail
* @param emailString
* @return false/true
*/
public function checkEmail($emailString){
if ($this -> checkUserInput($emailString) === TRUE){//检测是否含有敏感词汇
if (strpos('@', $emailString) != FALSE){//检测是否存在@字符
$emailArr = explode('@', $emailString);
if (count($emailArr) > 2){//检测是否存在多个@字符
return FALSE;
}else{
if (in_array('@'.$emailArr[1], Yii::app() -> params['mail_suffix'])){//检测后缀是否满足日常常用邮箱后缀
return TRUE;
}else{
return FALSE;
}
}
}else{
return FALSE;
}
}else{
return FALSE;
}
}

其中我定义了一个常用邮箱的后缀的数组,具体如下:

//常用邮箱后缀,根据具体需求可以再增加
复制代码 代码如下:

'mail_suffix'=>array('@hotmail.com',
'@msn.com',
'@yahoo.com',
'@gmail.com',
'@aim.com',
'@aol.com',
'@mail.com',
'@walla.com',
'@inbox.com',
'@126.com',
'@163.com',
'@sina.com',
'@21cn.com',
'@sohu.com',
'@yahoo.com.cn',
'@tom.com',
'@qq.com',
'@etang.com',
'@eyou.com',
'@56.com',
'@x.cn',
'@chinaren.com',
'@sogou.com',
'@citiz.com',
),

到此邮箱的过滤方法就完成了,大家可以在此基础上进行进一步的完善!

相关文章

  • php扩展开发入门demo示例

    php扩展开发入门demo示例

    这篇文章主要介绍了php扩展开发,结合简单demo实例形式分析了php扩展编写、编译生成与运行等相关操作步骤及注意事项,需要的朋友可以参考下
    2019-09-09
  • PHP中ob_start函数的使用说明

    PHP中ob_start函数的使用说明

    本文是对PHP中ob_start函数的使用方法进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • php防止CC攻击代码 php防止网页频繁刷新

    php防止CC攻击代码 php防止网页频繁刷新

    这篇文章主要介绍了php防止CC攻击代码和php防止网页频繁刷新,网页快速恶意刷新,cc攻击利用代理服务器生成指向目标站点的合法请求,模拟多用户不停的对受害网站进行访问,感兴趣的小伙伴们可以研究一下
    2015-12-12
  • mysql_connect localhost和127.0.0.1的区别(网络层阐述)

    mysql_connect localhost和127.0.0.1的区别(网络层阐述)

    这篇文章主要介绍了mysql_connect localhost和127.0.0.1的区别(网络层阐述),本文从网络通信层面讲解了它们的不同,需要的朋友可以参考下
    2015-03-03
  • php探针使用原理和技巧讲解

    php探针使用原理和技巧讲解

    在本篇文章里小编给大家分享的是关于php探针使用原理和技巧讲解,有兴趣的读者们可以跟着学习下。
    2019-09-09
  • php生成圆角图片的方法

    php生成圆角图片的方法

    这篇文章主要介绍了php生成圆角图片的方法,涉及php操作图片的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • php实现的简单检验登陆类

    php实现的简单检验登陆类

    这篇文章主要介绍了php实现的简单检验登陆类,可实现基本的php数据库查询及密码匹配的功能,需要的朋友可以参考下
    2015-06-06
  • yii 2.0中表单小部件的使用方法示例

    yii 2.0中表单小部件的使用方法示例

    这篇文章主要给大家介绍了关于yii 2.0中表单小部件的使用方法,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • php实现zip文件解压操作

    php实现zip文件解压操作

    这篇文章主要介绍了php实现zip文件解压操作的函数代码,每一条函数代码都有对应的文字注释,需要的朋友可以参考下
    2015-11-11
  • PHP遍历二维数组的代码

    PHP遍历二维数组的代码

    最近在研究PageCookery的快速发布,解决手机没有Cookies的问题。在谓语调用部分要历遍数据库读取的二维数组。
    2011-04-04

最新评论