$7.49 .com domain with free InstantPage Website Builder$1.99 Web Hosting   捷飞网络官方淘宝店   Godaddy 优惠码
返回列表 发帖
分享到:




用户注册时电子邮箱(Email)过滤及验证 For Discuz!7.0

作用简介 主要对会员注册Email进行过滤,验证,指定可以注册的唯一邮箱域;$ b9 T3 ]+ k# g3 ]
比如:会员注册只允许使用163邮箱,xxxx@163.com等。
% j* V. Z& J2 K. M# `昨天有网友提出这个需求,所以方法就贴出来。1 r# ~6 U! {4 \- _/ s
7 e# I( f! t8 m9 H
方法步骤:
& O8 p' |- |/ C  I0 K
! W: x8 `. ~* l' V
打开register.php文件,查找:
& T2 a8 F$ k, ?3 o3 f2 M+ T1 m4 f; k" f& _0 Q% b
  1. $email = trim($email);
复制代码

9 q9 E3 G! o+ G1 ~% q, R. K* M# ?% ~8 q' B. e
; T+ ?# N! O3 r! w! U: @1 U
$ n' y2 o4 B0 H, x
在下面添加:7 I7 B6 t$ D5 U: B

# V& d8 \5 I; d, F6 i- x+ f
  1. $emailcheck = explode('@',$email);
  2. if($emailcheck['1'] !== 'qq.com'){
  3. showmessage('您的邮箱不是QQ邮箱,请使用QQ邮箱注册');
  4. }
复制代码

9 m( \+ h& X8 _6 b/ c; \! O/ t2 K
1 f/ p# r+ `' m, \8 @
3 {3 g& o. u" ]4 O) e: A
注意,上面的'qq.com'就是你要指定的注册邮箱,下面的提示信息也可以自己修改。
, f9 H& ~# H' M* T! k/ d
$ t4 g, M' |1 y# a3 j原理解释:首先对register.php获取到的$email变量进行分割,例如,用户填写的邮箱:abcd@163.com,然后由explode函数,以@字符分割成两个字符串存储到数组$emailcheck中,那么$emailcheck['0']就是用户邮箱中的 abcd,$emailcheck['1']就是163.com,然后就可以根据判断是否匹配,从而决定是否允许用户注册,实现邮箱验证过滤!
6 w& O6 i& {/ k% `; W1 P9 t5 j( z* |
另外,此方法的扩展:注册指定某几个、多个邮箱,就是说允许注册邮箱为指定的几种,比如,163邮箱,QQ邮箱,雅虎邮箱等。
7 ~0 y( ^/ V6 n  v$ y( i扩展的话可以先将这几类邮箱存储一个数组里面,然后判断$emailcheck['1']是否存在于该数组即可!% H5 B& T) w$ c3 e9 H$ }5 O% ~! P, N* V
3 u5 Q: |0 K9 l* g+ l6 M
6 e" W6 ?/ R) O$ C; i$ I  Z* Y! K
效果演示:
; ^% t) l" d- Y  H- ]/ ~/ e0 U  E1 `2 d, U# z# _: w. x
" u8 h9 v8 }/ }
( F" a3 i% B( t+ {. I
参考:http://bbs.7drc.com/thread-2459-1-1.html




返回列表
Namecheap
Namecheap.com - Cheap domain name registration, renewal and transfers - Free SSL Certificates - Web Hosting
互联网安全