南京金友网 做南京人的网上家园  - 南京金友网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

查看: 1102|回复: 0
收起左侧

discuzx3.2 如何去掉注册时填的邮箱 Email地址无效问题的解决

[复制链接]
累计签到:94 天
连续签到:14 天

917

主题

98

回帖

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
14821

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

发表于 2022-10-4 16:40:20 | 显示全部楼层 |阅读模式 IP:- 中国

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
网上查到的解决方案都是一样的,不过那些设置只是前提。
1,
首先在后台--全局--注册与访问--注册-"取消注册邮箱必填"选择是提交
2934349b033b5bb5c5fb52f835d3d539b600bc83.jpg
2,
然后编辑
template\default\member\register.htm
删除以下代码即可,如果没改过这个文件,是151-159行。也可以直接把必填项的条件判断加到这一段代码上,如下图。
faf2b2119313b07ed6d3220e0fd7912397dd8c4d.jpg

按照上面二步操作,在注册页面的会不显示邮箱输入,但是提交时会提示“Email 地址无效”,原因是:如果不提交邮箱,DISCUZ会生成一个邮箱地址保存,
upload/source/class/class_member.php 612行

  1. if(empty($email) && $_G['setting']['forgeemail']) {
  2.            $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
  3.           }
复制代码

在本地运行discuz时,$_SERVER['HTTP_HOST']一般是localhost,生成的邮件地址就是 xjsixj@localhost,如果部署后网站有域名例:www.bbsks.com,则生成的邮件地址是 xjsixj@www.bbsks.com
上面生成的邮箱地址在进行用户信息保存时会验证,而验证的正则如下:
upload/uc_client/modle/user.php 92行
0e2442a7d933c8954e59e57dd21373f082020094.jpg
通过生成的地址与上面的正则比较就会发现,如果是xjsixj@localhost 肯定是通不过验证,也就会报“Email 地址无效”的错误。

这个问题没有什么修改的必要,如果实在要修改,只要对$_SERVER['HTTP_HOST']判断里面有没有(\.\w+)+,
解决方案如下,修改:
upload/source/class/class_member.php 612行
        if(empty($email) && $_G['setting']['forgeemail']) {
           $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];
          }
上面的代码换成如下:

  1. if(empty($email) && $_G['setting']['forgeemail']) {
  2.           if(preg_match("/^[\w\-\.]+(\.\w+)+$/", $_SERVER['HTTP_HOST'])){
  3.               $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'];  
  4.           }else{
  5.             $_GET['email'] = $email = strtolower(random(6)).'@'.$_SERVER['HTTP_HOST'].'.com';
  6.           }
  7.         }
复制代码

在网上找了一大堆还是报地址无效问题,只好自己看代码了,希望对有此问题的人有帮助,解决方案不对欢迎指教。

"小礼物走一走,来南京金友网支持我"
还没有人打赏,支持一下
走自己的路
您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

快速回复 返回顶部 返回列表