[discuzX3.4教程]如何用JQuery指定邮箱注册与禁止谷歌临时邮箱
首先后台的全局—注册管理里面有白名单设置,指定邮箱注册就不谈了,下面说说JQuery+ng伪静态的方法JQuery应该知道在哪个位置加载了吧,不知道的伙伴看我之前帖子。
摸索了一下注册页面输入框的ID会变化,所以用后代来判定。
找到member.php文件,
在倒数第二行插入以下代码:
echo '<script>
if (!!window.ActiveXObject || "ActiveXObject" in window){
alert("抱歉,*不支持IE浏览器,请更换浏览器内核访问。");
location.replace("//baike.baidu.com/item/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%86%85%E6%A0%B8/10602413?fr=aladdin");
}
jQuery(document).ready(function($){
$("button#registerformsubmit").on("click",function(){
var email = $("div#reginfo_a").find("input").val();
var emailcheck = email.split("@");
var a = email.match(/^[\w\u4e00-\u9fa5]+@[\w-]+(\.[\w-]+)+$/g);
var shuzu = ["qq.com","vip.qq.com","foxmail.com","163.com","vip.163.com","126.com","vip.126.com","188.com","yeah.net","139.com","189.cn","21cn.com","gmail.com","sina.com","vip.sina.com","sohu.com","vip.sohu.com","hotmail.com","outlook.com","yahoo.com","tom.com","vip.tom.com","163.net","163vip.com","aliyun.com"];
var b = $.inArray(emailcheck,shuzu);
if(a == null){
if(emailcheck == "gmail.com"){
alert("论坛不支持谷歌别名邮箱注册,请使用正常谷歌邮箱。");
}else{
alert("请确认是否输入了正确的邮箱,可以包含中文,但是不能包含特殊符号。正确格式:一二三[email protected]");
}
}else{
if(b == -1){
alert("你输入了论坛不支持的邮箱。论坛仅支持:网易、QQ、fox、188、189、139、21cn、tom、谷歌、新浪、搜狐、微软、雅虎、阿里云邮箱。");
}
}
});
});
</script>'
更新记录:
或者在footer.htm最后
插入:
<script>
if (!!window.ActiveXObject || "ActiveXObject" in window){
alert("抱歉,*不支持IE浏览器,请更换浏览器内核访问。");
location.replace("//baike.baidu.com/item/%E6%B5%8F%E8%A7%88%E5%99%A8%E5%86%85%E6%A0%B8/10602413?fr=aladdin");
}
</script>
<script>
jQuery(document).ready(function($){
function a(){
var yqm = $("div#reginfo_a").find("label:eq(0)").text();//获取第一个输入框label标签的值
if(yqm == "Email:"){var amail = $("div#reginfo_a").find("input:eq(0)").val();}//发送邮箱页面
if(yqm == "用户名:"){var amail = $("div#reginfo_a").find("input:eq(3)").val();}//注册页面(开启普通注册)
if(yqm == "邀请码:"){var amail = $("div#reginfo_a").find("input:eq(4)").val();}//注册页面(关闭普通注册)
var bmail = $("input#email").val();
var zmail = amail + bmail;
var email = zmail.replace(/undefined/g,"");//去除jquery获取不到val值显示的undefined
var emailcheck = email.split("@");
var a = email.match(/^[\w\u4e00-\u9fa5]+@[\w-]+(\.[\w-]+)+$/g);
var shuzu = ["qq.com","vip.qq.com","foxmail.com","163.com","vip.163.com","126.com","vip.126.com","188.com","yeah.net","139.com","189.cn","21cn.com","gmail.com","sina.com","vip.sina.com","sohu.com","vip.sohu.com","hotmail.com","outlook.com","yahoo.com","tom.com","vip.tom.com","163.net","163vip.com","aliyun.com"];
var b = $.inArray(emailcheck,shuzu);
if(a == null){
if(emailcheck == "gmail.com"){
alert("论坛不支持谷歌别名邮箱注册,请使用正常谷歌邮箱。");
location.reload(true);
}else{
if(email == ""){
alert("你还没有填写邮箱,不能提交,请先填好邮箱。");
location.reload(true);
}else{
alert("请确认是否输入了正确的邮箱,可以包含中文,但是不能包含特殊符号。正确格式:一二三[email protected]");
location.reload(true);
}
}
}else{
if(b == -1){
alert("你输入了论坛不支持的邮箱。论坛仅支持:网易、QQ、fox、188、189、139、21cn、tom、谷歌、新浪、搜狐、微软、雅虎、阿里邮箱。");
location.reload(true);
}
}
}
$("button#registerformsubmit, input#applysubmit").mouseover(function(){a();});
});
</script>
因为谷歌没有实际限制系统邮箱发送,而是弹窗提醒,所以还要在ng伪静态上加个正则表达式筛选来拦截注册地址。
## 设置禁止谷歌别名临时邮箱注册
if ($request_uri ~* "^.*email.*?\..*@gmail\.com.*$") {
rewrite ^/(.*)$ https://pic.rmb.bdstatic.com/bjh ... 11443e7fd32393a.png redirect;
}
至此终于完成,你再也不用面对烦人的*临时邮箱。
页:
[1]