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




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

作用简介 主要对会员注册Email进行过滤,验证,指定可以注册的唯一邮箱域;
: j0 w- K, d, j" C$ _; r. [比如:会员注册只允许使用163邮箱,xxxx@163.com等。
  N+ }/ J) l, N# _/ p: T昨天有网友提出这个需求,所以方法就贴出来。
* I/ u0 C! j2 O
/ k7 W: Y5 ~. Y6 N+ {方法步骤:
/ V% _% l) _5 c. X+ m; c. B+ n! X6 J, X$ m9 i$ t, u
打开register.php文件,查找:* K/ k1 G: [+ g$ f: t

' J. q# Q. N! A& Q$ ?0 F( p, [
  1. $email = trim($email);
复制代码

) N( n; X+ X2 |- l& I( d2 N. Z  g' n/ j1 D' l  M% C' Y

  k$ y, j0 @! z3 J* v
! @# }, d0 y9 x0 B2 H在下面添加:
3 q  {: d; Y( \: f2 p* O) i
" R4 O1 I+ v! L4 _1 v0 i7 A$ S
  1. $emailcheck = explode('@',$email);
  2. if($emailcheck['1'] !== 'qq.com'){
  3. showmessage('您的邮箱不是QQ邮箱,请使用QQ邮箱注册');
  4. }
复制代码
) k6 D+ C4 Y+ z" d! v

# |" U& D5 D# q3 a- [+ s: r4 y
" t) V7 N( r- X: e1 r1 g/ q1 E
" n9 z- V/ r  g, L! P" a: g注意,上面的'qq.com'就是你要指定的注册邮箱,下面的提示信息也可以自己修改。; G- O% \' ~& p( ~5 T
: G# r9 x% ~0 C8 a4 ]1 H- M
原理解释:首先对register.php获取到的$email变量进行分割,例如,用户填写的邮箱:abcd@163.com,然后由explode函数,以@字符分割成两个字符串存储到数组$emailcheck中,那么$emailcheck['0']就是用户邮箱中的 abcd,$emailcheck['1']就是163.com,然后就可以根据判断是否匹配,从而决定是否允许用户注册,实现邮箱验证过滤!2 T0 B. _7 w& ?4 {# b) Z

% n- `7 K) [+ ~, D# U* `% X6 z另外,此方法的扩展:注册指定某几个、多个邮箱,就是说允许注册邮箱为指定的几种,比如,163邮箱,QQ邮箱,雅虎邮箱等。; k- r* o- Z4 i5 ?* t% p
扩展的话可以先将这几类邮箱存储一个数组里面,然后判断$emailcheck['1']是否存在于该数组即可!2 ]* I: Z' s' s6 m2 r* \/ h
, ^  b2 ?* f2 Z& ^

' K& ]5 V3 ~- K1 s( ?7 [效果演示:& \  a" Z+ ~4 o# l& R0 t
( M6 v9 x6 L- n: E4 p: L
9 x' r& B- J1 X; D; J2 _7 C, e5 ~

( W4 ]" ~5 S' u参考:http://bbs.7drc.com/thread-2459-1-1.html


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