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 相关文章推荐
提升PHP执行速度全攻略(下)
Oct 09 PHP
PHP脚本的10个技巧(4)
Oct 09 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
Mar 06 PHP
php一些公用函数的集合
Mar 27 PHP
php仿discuz分页效果代码
Oct 02 PHP
Cakephp 执行主要流程
Mar 24 PHP
PHP定时执行计划任务的多种方法小结
Dec 19 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php可应用于面包屑导航的迭代寻找家谱树实现方法
Feb 02 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
Sep 30 PHP
Linux平台php命令行程序处理管道数据的方法
Nov 10 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
Mar 09 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
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP实现的简单日历类
2014/11/29 PHP
php使用PDO方法详解
2014/12/27 PHP
thinkphp3.x连接mysql数据库的方法(具体操作步骤)
2016/05/19 PHP
解决laravel id非自增 模型取回为0 的问题
2019/10/11 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
jQuery form插件之ajaxForm()和ajaxSubmit()的可选参数项对象
2016/01/23 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
javascript学习之json入门
2016/12/22 Javascript
js实现悬浮窗效果(支持拖动)
2017/03/09 Javascript
fullPage.js和CSS3实现全屏滚动效果
2017/05/05 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
js实现动态改变radio状态的方法
2018/02/28 Javascript
Angular父子组件通过服务传参的示例方法
2018/10/31 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
webpack4 optimization使用总结
2019/11/10 Javascript
vue项目中使用bpmn为节点添加颜色的方法
2020/04/30 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Python 移动光标位置的方法
2019/01/20 Python
Python同步遍历多个列表的示例
2019/02/19 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python 连续不等式语法糖实例
2020/04/15 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
劳资员岗位职责
2013/11/11 职场文书
销售助理岗位职责
2015/02/11 职场文书
同学聚会祝酒词
2015/08/10 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
初中班长竞选稿
2015/11/20 职场文书