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

2015-01-24信息快讯网

在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户那就需要过滤了,下面为大家介绍下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', 
), 

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