论坛风格切换
您好,欢迎光临本站!   登录 注册新用户
  • 3461阅读
  • 1回复

[php]PHP 中该怎样实现常用邮箱的基本判断 [复制链接]

上一主题 下一主题
 
发帖
85
黑豆
3
威望
415
贡献值
0
交易币
0
红豆
10
只看楼主 倒序阅读 0 发表于: 2014-01-08
在邮件发送出去之前,用户的基本信息已经存在于数据库中了,如果是个错误的邮箱或者是恶意多注册账户那就需要过滤了,下面清源就为大家介绍下PHP 中实现常用邮箱的基本判断


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


代码如下:


  1. /**
  2. * @todo 用户输入安全性检测
  3. * @param $inputString 用户输入信息
  4. * @return true/false
  5. * [url=u.php?uid=526853]@final[/url]   可以根据自己的需求进行过滤内容的变换
  6. */ (PS:PHP Q扣峮:276167802,验证:2c)
  7. public function checkUserInput($inputString){
  8. if (strpos('script', $inputString)!=false){//检测是否含有script脚本
  9. return FALSE;
  10. }else if (strpos('iframe', $inputString)!=false){//检测是否含有iframe框架
  11. return FALSE;
  12. }else {
  13. return TRUE;
  14. }
  15. }
  16. /**
  17. * @todo checkeemail
  18. * @param emailString
  19. * @return false/true
  20. */
  21. public function checkEmail($emailString){
  22. if ($this -> checkUserInput($emailString) === TRUE){//检测是否含有敏感词汇
  23. if (strpos('@', $emailString) != FALSE){//检测是否存在@字符
  24. $emailArr = explode('@', $emailString);
  25. if (count($emailArr) > 2){//检测是否存在多个@字符
  26. return FALSE;
  27. }else{
  28. if (in_array('@'.$emailArr[1], Yii::app() -> params['mail_suffix'])){//检测后缀是否满足日常常用邮箱后缀
  29. return TRUE;
  30. }else{
  31. return FALSE;
  32. }
  33. }
  34. }else{
  35. return FALSE;
  36. }
  37. }else{
  38. return FALSE;
  39. }
  40. }


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


//常用邮箱后缀,根据具体需求可以再增加


代码如下:


  1. 'mail_suffix'=>array('@hotmail.com',
  2. '@msn.com',
  3. '@yahoo.com',
  4. '@gmail.com',
  5. '@aim.com',
  6. '@aol.com',
  7. '@mail.com',
  8. '@walla.com',
  9. '@inbox.com',
  10. '@126.com',
  11. '@163.com',
  12. '@sina.com',
  13. '@21cn.com',
  14. '@sohu.com',
  15. '@yahoo.com.cn',
  16. '@tom.com',
  17. '[url=u.php?uid=576761]@qq.com[/url]  ',
  18. '@etang.com',
  19. '@eyou.com',
  20. '@56.com',
  21. '@x.cn',
  22. '@chinaren.com',
  23. '@sogou.com',
  24. '@citiz.com',
  25. ),


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


以上是本文关于PHP 中该怎样实现常用邮箱的基本判断,希望本文对广大php开发者有所帮助,感谢阅读本文。
本帖提到的人: @final @
快速回复
限100 字节
 
上一个 下一个