iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >关闭discuzX3.2注册页面的注册邮箱验证
  • 285
分享到

关闭discuzX3.2注册页面的注册邮箱验证

2024-04-02 19:04:59 285人浏览 泡泡鱼
摘要

    论坛升级后发现注册用户在输入任何邮箱email时,一直提示email 地址无效.用firePHP跟踪发现:随机生成的email的后缀是@localhost!找

    

论坛升级后发现注册用户在输入任何邮箱email时,一直提示email 地址无效.用firePHP跟踪发现:随机生成的email的后缀是@localhost!

找到原因,修改如下:

关闭discuzX3.2注册页面的注册邮箱验证

//原来代码if(empty($email) && $_G['setting']['forgeemail'])
{$_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['Http_HOST'];
}//但是如果本地调试emai后缀就是@localhost,不符合邮箱的规则if(empty($email) && $_G['setting']['forgeemail'])
{$_GET['email'] = $email = strtolower(random(16)).'@'.'klaus.com';
}//增加了16位随机码,减少生成相同的邮箱概率;
//后缀固定,这样就不提示'Email 地址无效'了!

关闭discuzX3.2注册页面的注册邮箱验证

但是这个感觉太lower了,回到dz3.1以前的玩法是:

在DZ3.2以前的版本的后台我们可以在全局——注册与访问——取消邮箱注册必填如下图:
关闭discuzX3.2注册页面的注册邮箱验证

接下来就问题来了,Discuz官方团队可能也考虑到了这个问题,也许他们也像我这样认为这个地方在后台出现没多大必要,于是他们就在X3.2版本中更新了这个模块,更新的结果我觉得应该是这样的:在后台取消这个设置,但数据库里面存储的信息不变,而且在注册的时候不再使用这个数据库里面的设置的值为依据。于是就造成了上面的问题了,虽然让用户觉得不需要必须填(因为没红星),但不填之后注册不了

问题分析

通过对X3.1后台设置分析发现这里是一个radio类型的,也就是开关(废话而已,谁都看得出来);表单name为settingnew[forgeemail],值为0和1,0为关闭,1为打开,这个跟一般的习惯都是一样的。也就是说这个值选择1时我们注册的时候可以不需要填写邮箱,反之也就是默认情况下我们必须填写邮箱才能注册帐号。

而做过Discuz二次开发的同学都应该清楚,其实后台类似这样的设置数据都是存储在common_setting这个数据表中,而很快我发现这个数据表中直接有forgeemail这个记录,说明这个地方dz是直接保存的(不想保存高亮值信息那样,还通过进制转化,哈哈,不用再看源代码去了)。如下图(当然下面是默认的样子)
关闭discuzX3.2注册页面的注册邮箱验证

问题解决

说到这里大家就应该明白了什么问题了,其实这个问题就是3.2以后这个数据表中的skey为forgeemail的记录只是用于判断是否带红星,而不用于判断是不是真要填;换句话说不管这里设置的是0还是1,你的网站注册的时候都得填写邮箱(这可能也是DZ团队在升级改变这个问题所忽视的地方,比如就算强制设计成必填,那么也应该把数据库的这个字段值在升级的时候自动覆盖成0了)。

那么如果彻底解决(也就是可以让你的网站实现用户不不必填写邮箱也可以注册),这个相对比较复杂,要修改你注册表单的验证程序,而且我个人也不推荐这么做,这里就不详述了。

那么接下来就是把注册的时候带上红星(其实默认的时候就是这样的),当然问题是针对在3.2之前通过后台设置过这值的网站。那么现在去数据库找到common_setting这个数据表找到skey值forgeemail的svalue改为默认的0就可以了,也可以在数据库管理工具或者网站后台运行以下sql语句

update pre_common_setting set 'svalue'='0' where  'skey'='orgeemail'
注意:这里的表前缀为DZ的默认的pre_,如果你修改了,改成你新修改的

discuzX3.2后台关闭注册邮箱必填选项的功能。详细过程如下:
步骤1:source/admincp/admincp_setting.php 文件 
查找:

    showsetting('setting_access_reGISter_send_register_url', 'settingnew[sendregisterurl]', $setting['sendregisterurl'], 'radio');

大概是440-441行:
增加以下代码:

    showsetting('setting_access_register_forge_email', 'settingnew[forgeemail]', $setting['forgeemail'], 'radio');

步骤2:打开source/language/lang_admincp.php 文件
查找: 一个邮箱只允许注册一个帐户

大概811行,增加以下代码:

'setting_access_register_forge_email' => '取消注册邮箱必填',

'setting_access_register_forge_email_comment' => '开启后如果用不不填写注册邮箱,将自动生成一个邮箱地址',

步骤3:修改source/class/class_member.php
大概611行:
原文是:

关闭discuzX3.2注册页面的注册邮箱验证

$email = strtolower(trim($_GET['email']));if(empty($this->setting['ignorepassWord'])) {if($_GET['password'] !== $_GET['password2']) {
   showmessage('profile_passwd_notmatch');
}if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password'])) {
  showmessage('profile_passwd_illegal');
 } $password = $_GET['password'];
} else {       $password = md5(random(10));
       }
}

关闭discuzX3.2注册页面的注册邮箱验证

修改为(或直接替换以下:)

关闭discuzX3.2注册页面的注册邮箱验证

$email = strtolower(trim($_GET['email']));if(empty($email) && $_G['setting']['forgeemail']) {    $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
}if(empty($this->setting['ignorepassword']))
{    if($_GET['password'] !== $_GET['password2']) {
        showmessage('profile_passwd_notmatch');
    }    if(!$_GET['password'] || $_GET['password'] != addslashes($_GET['password']))
    {
        showmessage('profile_passwd_illegal');
    }    $password = $_GET['password'];
} 
else {    $password = md5(random(10));
}
}

关闭discuzX3.2注册页面的注册邮箱验证

工具->更新缓存
全局->注册与访问控制:
关闭discuzX3.2注册页面的注册邮箱验证

如果你想在注册页面不显示 注册邮箱选项,直接去掉模板中的相应的email代码即可。


您可能感兴趣的文档:

--结束END--

本文标题: 关闭discuzX3.2注册页面的注册邮箱验证

本文链接: https://www.lsjlt.com/news/41299.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring Boot邮箱链接注册验证及注册流程
    简单介绍 注册流程 【1】前端提交注册信息 【2】后端接受数据 【3】后端生成一个UUID做为token,将token作为redis的key值,用户数据作为redis的value值,...
    99+
    2024-04-02
  • Vue怎么邮箱注册和短信注册登录页面
    这篇文章主要讲解了“Vue怎么邮箱注册和短信注册登录页面”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue怎么邮箱注册和短信注册登录页面”吧!一、项目环境...
    99+
    2024-04-02
  • django注册用邮箱发送验证码的实现
    视图代码 lis = []#设置一个空列表用来存放发送的验证码,用来验证 def yzm1(): res1 = "" for i in range(4):#用四...
    99+
    2024-04-02
  • 使用django怎么实现发送验证码注册邮箱
    这篇文章将为大家详细讲解有关使用django怎么实现发送验证码注册邮箱,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。视图代码lis = []#设置一个空列表用来存放发送的...
    99+
    2023-06-14
  • jQuery中正则验证注册页面的示例分析
    这篇文章给大家分享的是有关jQuery中正则验证注册页面的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:<!DOCTYPE html> &...
    99+
    2024-04-02
  • 怎么用js代码完整注册表单验证及邮箱补齐
    这篇文章主要讲解了“怎么用js代码完整注册表单验证及邮箱补齐”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用js代码完整注册表单验证及邮箱补齐”吧!代码...
    99+
    2024-04-02
  • js实现注册页面校验功能
    本文实例为大家分享了js实现注册页面的校验代码,供大家参考,具体内容如下 基本操作 document.getElementById():获取页面元素alert():向页面弹出提示框。...
    99+
    2024-04-02
  • Vue简易注册页面+发送验证码功能的实现示例
    目录1. 效果展示2. 增强版验证码及邮件推送管理(见以后的博客)3. 大致思路4. 前期准备5. 前端代码6. 后端1. 效果展示 2. 增强版验证码及邮件推送管理(见以后的博...
    99+
    2024-04-02
  • Vue怎么实现简易注册页面和发送验证码功能
    本篇内容介绍了“Vue怎么实现简易注册页面和发送验证码功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 效果展示2. 增强版验证码及邮...
    99+
    2023-06-21
  • JavaScript中如何完成注册页面表单校验
    这篇文章主要为大家展示了“JavaScript中如何完成注册页面表单校验”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中如何完成注册页面表单...
    99+
    2024-04-02
  • Springboot实现邮箱验证码注册与修改密码及登录功能详解流程
    目录前言一、SpringBoot依赖1、pom.xml文件2、Applications.yaml二、数据库文件三、实现注册功能四、找回密码功能五、登录功能总结前言 最近Springb...
    99+
    2022-11-16
    Springboot邮箱验证码 Springboot修改密码 Springboot登陆功能
  • 怎么使用AJAX实现页面登陆以及注册用户名验证
    这篇文章主要介绍了怎么使用AJAX实现页面登陆以及注册用户名验证,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。AJAX即“Asynchronous Javascript An...
    99+
    2023-06-08
  • 探讨一下GITLAB关闭注册的影响
    近期,业内人士热议的话题便是GITLAB关闭了注册。作为全球最大的开源代码托管网站,GITLAB拥有着数百万的用户数量。如此的决定,无疑引发了广泛的讨论和争议。本文就来探讨一下GITLAB关闭注册这一举措的背后,以及可能的影响。GITLAB...
    99+
    2023-10-22
  • 亚马逊注册身份证无法验证的原因
    亚马逊注册时身份证无法验证的原因可能有以下几种: 身份证信息填写错误:在填写身份证信息时,可能会出现输入错误的情况,例如姓名、身份证号码、出生日期等信息填写错误,导致无法通过验证。 身份证信息与实名认证不一致:如果您的身份证信息与您的实...
    99+
    2023-10-27
    亚马逊 身份证 原因
  • JavaWeb之Servlet注册页面的实现示例
    Servlet-注册页面 环境准备: 本文所用到环境如下: 软件:Eclipse(2018) 服务器:Tomcat 9 在index.jsp添加相关的代码 <...
    99+
    2024-04-02
  • AndroidStudio实现注册页面跳转登录页面的创建
    本文是用来介绍Android Studio创建注册页面跳转登录页面的界面设计以及跳转功能地实现,完整结构见文章结尾。 用户注册界面 <xml version="1.0" en...
    99+
    2024-04-02
  • java怎么实现注册的短信验证码功能
    本篇内容介绍了“java怎么实现注册的短信验证码功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!短信验证码实现流程构造手机验证码,生成一个...
    99+
    2023-06-02
  • QT实现登录界面(利用MySQL保存数据和邮箱辅助注册)
    1. 前言 断断续续黑框框下的学生管理系统,也写了不下三次,总在黑框框下呆着也不是一回事,想挑战用qt做一个界面版的学生管理系统,至于为什么选用qt+C++,而不用C#之类的,是因为我目前学习C++,手头只接触了qt,所以想着挑战一下自己。...
    99+
    2023-09-15
    qt mysql 数据库
  • java实战案例之用户注册并发送邮件激活/发送邮件验证码
    目录 一、前期准备 1、准备两个邮箱账号(一个发邮件,一个收邮件)1.1)登录需要发送邮件的QQ邮箱,找到设置项1.3)生成授权码二、项目1、准备用户数据表2、i...
    99+
    2024-04-02
  • vue+element实现手机号验证码注册的示例
    很全的PC端手机端适配!一个项目多个域名我试了代理跨域本地运行可以打包上传不行,然后就用全地址,后端哪里要设置域名白名单!直接上图和完整代码!觉得可以就点个赞吧,谢谢! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作