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




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

作用简介 主要对会员注册Email进行过滤,验证,指定可以注册的唯一邮箱域;
8 W; H1 M" V% w比如:会员注册只允许使用163邮箱,xxxx@163.com等。0 f/ Z' M1 V2 n# F
昨天有网友提出这个需求,所以方法就贴出来。
7 `& x- z' |' R1 O$ Y. X" ]2 }' E% h. |0 V# W
方法步骤:
8 @, W7 v" Q/ ]- O/ J6 |  B
1 `+ I$ ^, c# G+ V4 P/ K
打开register.php文件,查找:6 J! O: x9 A) Q9 ^& l  Y8 e

7 s; l& t% `) P9 T! ]9 `8 D1 B
  1. $email = trim($email);
复制代码
; y; K+ u7 E4 _9 S' \5 u9 D8 {
+ L' R2 d* [$ `  z

+ J: c9 R* S7 v; c$ d3 l1 K1 R  Y$ n3 I  C5 D* T
在下面添加:
. M- Y5 k$ ^# m6 ?
& S$ m9 S0 B& {0 c7 p
  1. $emailcheck = explode('@',$email);
  2. if($emailcheck['1'] !== 'qq.com'){
  3. showmessage('您的邮箱不是QQ邮箱,请使用QQ邮箱注册');
  4. }
复制代码
5 n1 n9 j4 |1 J# a
, T7 M2 }' X9 ^# J
7 {) [$ n0 N* v9 Q1 b4 M% }# G% l

1 r: i, b: v2 \* z5 W# z/ z注意,上面的'qq.com'就是你要指定的注册邮箱,下面的提示信息也可以自己修改。
# y$ j; J+ h- @& h# X: C  Z/ t- t1 e: y( }( Q2 j& n/ A5 U
原理解释:首先对register.php获取到的$email变量进行分割,例如,用户填写的邮箱:abcd@163.com,然后由explode函数,以@字符分割成两个字符串存储到数组$emailcheck中,那么$emailcheck['0']就是用户邮箱中的 abcd,$emailcheck['1']就是163.com,然后就可以根据判断是否匹配,从而决定是否允许用户注册,实现邮箱验证过滤!7 F& C; [9 V7 Z

  x3 c$ U2 S) G  D2 Q, l9 h: O另外,此方法的扩展:注册指定某几个、多个邮箱,就是说允许注册邮箱为指定的几种,比如,163邮箱,QQ邮箱,雅虎邮箱等。% w) w9 K/ g1 X
扩展的话可以先将这几类邮箱存储一个数组里面,然后判断$emailcheck['1']是否存在于该数组即可!2 c) b' w4 H. P5 C6 F
2 E" g9 v. B& @6 j1 d* d0 H7 g0 A

- z; o8 A  Q0 j* g- @( x效果演示:
4 m: m0 _* U% O( r1 x- U( e
; B- M% p5 K  P6 Z1 q; n: u) k* Z" `1 k) }1 j) h  ?+ u

! e& b% _  \9 w4 X& {: ]9 j参考:http://bbs.7drc.com/thread-2459-1-1.html

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