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 MSSQL 存储过程的方法
Dec 24 PHP
PHP 操作文件的一些FAQ总结
Feb 12 PHP
php中理解print EOT分界符和echo EOT的用法区别小结
Feb 21 PHP
php 随机排序广告的实现代码
May 09 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
php实现zip压缩文件解压缩代码分享(简单易懂)
May 10 PHP
对PHP语言认识上需要避免的10大误区
Jun 12 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
PHPUnit测试私有属性和方法功能示例
Jun 12 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 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缩略图生成程式(需要GD库支持)
2007/03/06 PHP
PHP读取txt文件的内容并赋值给数组的代码
2011/11/03 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
De facto standard 世界上不可思议的事实标准
2010/08/29 Javascript
Chrome Form多次提交表单问题的解决方法
2011/05/09 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
jQuery图片特效插件Revealing实现拉伸放大
2015/04/22 Javascript
jQuery实现切换页面过渡动画效果
2015/10/29 Javascript
js的三种继承方式详解
2017/01/21 Javascript
完美的js图片轮换效果
2017/02/05 Javascript
超全面的javascript中变量命名规则
2017/02/09 Javascript
微信小程序调用PHP后台接口 解析纯html文本
2017/06/13 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
js实现左右轮播图
2020/01/09 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[46:57]EG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Django 使用logging打印日志的实例
2018/04/28 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
python判断元素是否存在的实例方法
2020/09/24 Python
使用HTML5中的contentEditable来将多行文本自动增高
2016/03/01 HTML / CSS
垃圾回收的优点和原理
2014/05/16 面试题
搞笑获奖感言
2014/01/30 职场文书
房地产推广策划方案
2014/05/19 职场文书
护理专业自荐书
2014/06/04 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
Python实现列表拼接和去重的三种方式
2021/07/02 Python