zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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

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

/**
*@todo用户输入安全性检测
*@param$inputString用户输入信息
*@returntrue/false
*@final可以根据自己的需求进行过滤内容的变换
*/
publicfunctioncheckUserInput($inputString){
if(strpos("script",$inputString)!=false){//检测是否含有script脚本
returnFALSE;
}elseif(strpos("iframe",$inputString)!=false){//检测是否含有iframe框架
returnFALSE;
}else{
returnTRUE;
}
}

/**
*@todocheckeemail
*@paramemailString
*@returnfalse/true
*/
publicfunctioncheckEmail($emailString){
if($this->checkUserInput($emailString)===TRUE){//检测是否含有敏感词汇
if(strpos("@",$emailString)!=FALSE){//检测是否存在@字符
$emailArr=explode("@",$emailString);
if(count($emailArr)>2){//检测是否存在多个@字符
returnFALSE;
}else{
if(in_array("@".$emailArr[1],Yii::app()->params["mail_suffix"])){//检测后缀是否满足日常常用邮箱后缀
returnTRUE;
}else{
returnFALSE;
}
}
}else{
returnFALSE;
}
}else{
returnFALSE;
}
}

其中我定义了一个常用邮箱的后缀的数组,具体如下:

//常用邮箱后缀,根据具体需求可以再增加
复制代码代码如下:

"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",
),

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