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的FTP学习(一)[转自奥索]
Oct 09 PHP
一个用于mysql的数据库抽象层函数库
Oct 09 PHP
mysql时区问题
Mar 26 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
Jul 03 PHP
php自定义的格式化时间示例代码
Dec 05 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
Windows7下的php环境配置教程
Feb 28 PHP
遍历指定目录,并存储目录内所有文件属性信息的php代码
Oct 28 PHP
php利用fsockopen GET/POST提交表单及上传文件
May 22 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
图书管理程序(二)
2006/10/09 PHP
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
一个javascript参数的小问题
2008/03/02 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
JS+html5 canvas实现的简单绘制折线图效果示例
2017/03/13 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
token 机制和实现方式
2020/12/15 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
简述Python2与Python3的不同点
2018/01/21 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
Python @property及getter setter原理详解
2020/03/31 Python
pytorch判断是否cuda 判断变量类型方式
2020/06/23 Python
Python collections.deque双边队列原理详解
2020/10/05 Python
通用求职信范文模板分享
2013/12/27 职场文书
学习“七一”讲话精神体会
2014/07/08 职场文书
英文演讲稿开场白
2014/08/25 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
PHP命令行与定时任务
2021/04/01 PHP
详解MySQL的半同步
2021/04/22 MySQL