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',
	),
     到此邮箱的过滤方法就完成了,大家可以在此基础上进行进一步的完善!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值