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


Posted in PHP onJanuary 07, 2014

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

/** 
* @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 相关文章推荐
综合图片计数器
Oct 09 PHP
PHP新手上路(七)
Oct 09 PHP
解决php中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
PHP 文件类型判断代码
Mar 13 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
ThinkPHP 3.2 数据分页代码分享
Oct 14 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php无法连接mysql数据库的正确解决方法
Jul 01 PHP
PHP中list方法用法示例
Dec 01 PHP
PHP实现批量清空删除指定文件夹所有内容的方法
May 30 PHP
centos7上编译安装php7以php-fpm方式连接apache
Nov 08 PHP
PHP实现变色验证码实例
Jan 06 #PHP
有关于PHP中常见数据类型的汇总分享
Jan 06 #PHP
用php简单实现加减乘除计算器
Jan 06 #PHP
PHP面向对象之旅:深入理解static变量与方法
Jan 06 #PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 #PHP
php Calender(日历)代码分享
Jan 03 #PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
Jan 03 #PHP
You might like
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
ZendFramework框架实现连接两个或多个数据库的方法
2016/12/08 PHP
PHP中rename()函数的妙用讲解
2019/02/28 PHP
laravel中的fillable和guarded属性详解
2019/10/23 PHP
下载站控制介绍字数显示的脚本 显示全部 隐藏介绍等功能
2009/09/19 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
javascript实现复制与粘贴操作实例
2014/10/16 Javascript
JQuery中clone方法复制节点
2015/05/18 Javascript
JavaScript实现动态添加,删除行的方法实例详解
2015/07/02 Javascript
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
Js类的静态方法与实例方法区分及jQuery拓展的两种方法
2016/06/03 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
浅析java线程中断的办法
2018/07/29 Javascript
微信小程序 MinUI组件库系列之badge徽章组件示例
2018/08/20 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Python入门_条件控制(详解)
2017/05/16 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
python实现定时发送邮件
2020/12/23 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
物流管理毕业生自荐信
2013/10/24 职场文书
运动与健康自我评价
2015/03/09 职场文书
让世界充满爱观后感
2015/06/10 职场文书
总经理年会致辞
2015/07/29 职场文书
浅谈mysql哪些情况会导致索引失效
2021/11/20 MySQL
python如何将mat文件转为png
2022/07/15 Python
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers