- 帖子
- 1008
- 主题
- 761
- 精华
- 0
- 积分
- 1794
- 贡献
- 941
- 激情
- 7771
- 阅读权限
- 100
- 最后登录
- 2020-4-28
|
用户注册时电子邮箱(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
, 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
- $emailcheck = explode('@',$email);
- if($emailcheck['1'] !== 'qq.com'){
- showmessage('您的邮箱不是QQ邮箱,请使用QQ邮箱注册');
- }
复制代码 / 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 |
|