菜心哥 发表于 2023-9-14 10:39:53

DisncuzX3.2-3.4后台实现关闭或开启注册邮箱必填DX3.4正式版完整操作方法

我的菜园和后勤服务站草根班由于PHP版本升级造成邮箱功能不能发送,试过很多方法,尝试了好多次都未能修复。因同一服务器系统的老菜心博客站邮箱功能正常,所以确定是PHP版本升级造成,这事就搁置不再花时间去折腾了。
我的菜园目前采用手机注册,邮箱功能可以忽略,但草根班后勤服务站由于操作需要没有开启手机注册,采用系统默认的邮箱注册,因发送不了邮件也不能验证邮箱,注册时邮箱必填成了多余的操作,于是决定把邮箱必填修改成可选。


首先还是从网上寻找方法,经过实际操作,其实没那么简单,当然难度不大,但流程有些繁琐。
网上的方法是有效的,但找到的都不够完整,就凭一家网站大佬的方法不会成功,这里我把找到的方法进行整理打包,有DZ3.2和DZ3.4版本的,这里我称之为邮箱注册补丁包,如果菜油们信的过我就直接覆盖文件,注意备份原文件哦!
如果有兴趣了解过程的,每个文件里面都有注释,只要把要添加的代码或命令复制到你原文件的相应位置,那样又能了解原理,又可避免因版本文件不对应造成的意外BUG。其中有一个文件是要修改的,没有注释,这里给指出了解下。
修改source/class/class_member.php文件
$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));
}
}修改为:
$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));
}
}再上个DX3.4的截图:




图省事的站长也可到DZ官方应用中心购买插件,省时省力,当然插件有点小贵,网上也没有试用版本,插件作者们也没提供,我也就不想花钱购买了,自力更生,丰衣足食。下面提供两种版本赶快去下载吧!
DZ3.2补丁包:

DZ3.4补丁包:


抱歉!上方文件不支持手机端下载


通过上面文件的补丁安装后,我们打开后台就会增加这样的选择了,如下图:




然后你会发现开启后,到前端注册时,不管是必填还是选填,没输入邮箱就是提示不能注册,如下图:


此时有点尴尬了,再去网上找:



这位大佬我觉得是没有真正去操作的,其实修改数据库没用,涛声依旧,当然我也要感谢这位,也是对我有帮助的,让我放弃了这条路,避免出大错,数据库没有必要就不要去动,出错的话后果很严重的。

继续摸索,看到一位大佬说删除邮箱选项也是不行的,并且给出了修改代码的方法,好像看到了一丝曙光。
步骤给隐藏,回复方可见,鼓励大家多沟通交流,不做伸手党。
实现步骤后台逻辑处理1.注释upload/static/js/register.js 340行代码**** Hidden Message *****2.注释upload/uc_client/control/user.php 75 行代码
**** Hidden Message *****

信心满满,以为要成功了,然并卵......
以上是从网上获取的方法,都认真去做了,还是没成功,经过仔细测试,还有个地方要注释,这才是关键所在,我太难了!这时候很想有人给一瓶红牛提提神,所以下方截图需支付5元下载,如果你经过操作还是不成功也不可退款,但可联系菜心哥协助解决,视难易程度酌情再补些费用,感谢您的支持!
https://cgb.lucaixing.com/lcx%E5%9B%BE%E7%89%8720230914101423.png

效果可去草根班注册体验:草根班
手机端和电脑端一样效果。
声明:手机端可能是模板原因,注册界面填写项都没显示红“*”如下图:



如果要删除邮箱选项也是可以的,到前端页面找到对应代码删除即可,这里就不再多说了。

电脑端注册界面效果:



关闭或开启注册邮箱必填的方法就到这了,如果您有更多更好的办法,欢迎来这留言讨论哦!
好消息!于2023年9月27日用上面的方法在DZ3.5版本上也修改成功!

yzyzjxy 发表于 2023-9-14 10:51:12

么么哒!

yizhimei 发表于 2023-9-14 19:11:17

你是我的菜

菜心哥 发表于 2023-9-27 15:39:37

还真的是好菜哦!
页: [1]
查看完整版本: DisncuzX3.2-3.4后台实现关闭或开启注册邮箱必填DX3.4正式版完整操作方法