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




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

作用简介 主要对会员注册Email进行过滤,验证,指定可以注册的唯一邮箱域;/ U" Y; k8 h( a% N: [  q* L" B8 R
比如:会员注册只允许使用163邮箱,xxxx@163.com等。
: Y  {) b1 Q7 l. i. X3 M昨天有网友提出这个需求,所以方法就贴出来。" B6 [5 m  `4 p1 l2 V1 x8 x

- N# j) H# [- M$ h0 _方法步骤:
+ |1 m2 q$ L' Y9 U" P- @% l. S) R6 R$ g" Y% V
打开register.php文件,查找:
& v1 W. Q8 g" S. w  m$ B9 T" S2 b' k( V6 V7 g. t! V  a
  1. $email = trim($email);
复制代码

, E$ m$ N# k1 J0 @; W
! G% t+ z2 b& d' _& f
8 x$ P3 u" V9 l6 O( p! [
+ V' D4 C4 ]" P5 m在下面添加:# x) d$ L  t- `# R8 k* U
" k' D, |) h0 f6 o/ A" U
  1. $emailcheck = explode('@',$email);
  2. if($emailcheck['1'] !== 'qq.com'){
  3. showmessage('您的邮箱不是QQ邮箱,请使用QQ邮箱注册');
  4. }
复制代码
/ a' w7 u" }1 O4 v* p+ ]" @1 Y
5 _' o. w  L) a1 {7 ^
8 C  R2 a  P' f$ N

8 W; }5 N0 g& X注意,上面的'qq.com'就是你要指定的注册邮箱,下面的提示信息也可以自己修改。: [9 E; Q$ {4 m" |
1 x  ^- ~! ]  z3 s- N
原理解释:首先对register.php获取到的$email变量进行分割,例如,用户填写的邮箱:abcd@163.com,然后由explode函数,以@字符分割成两个字符串存储到数组$emailcheck中,那么$emailcheck['0']就是用户邮箱中的 abcd,$emailcheck['1']就是163.com,然后就可以根据判断是否匹配,从而决定是否允许用户注册,实现邮箱验证过滤!
) D' q+ Z1 C3 P; \# D' |! q. [7 A* Q2 ~& q: ?" N& D$ Z8 @% [& I$ D9 Q
另外,此方法的扩展:注册指定某几个、多个邮箱,就是说允许注册邮箱为指定的几种,比如,163邮箱,QQ邮箱,雅虎邮箱等。
, _6 r& p% L5 J6 g4 Y扩展的话可以先将这几类邮箱存储一个数组里面,然后判断$emailcheck['1']是否存在于该数组即可!, Z7 c) D7 E& G4 D4 c
/ M$ W4 j# S$ ]. ^# e: B7 t( A

' ^1 J' u8 W4 c1 O  v5 P- h效果演示:7 u5 m4 P& G* x5 S& \. L- K+ H* _
+ U# Y! _  T3 k+ u1 K; O( \

4 G7 `* z, X/ F& y0 z) X2 D; l' n2 C, ^3 M5 K
参考:http://bbs.7drc.com/thread-2459-1-1.html

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