·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

禁止修改邮箱BUG

403 2
发表于 2021-4-15 11:16:43 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

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

×
想要禁止用户修改邮箱,但是会有BUG,禁止修改邮箱后,用户就无法再通过 密码安全 页面修改密码了。

如果修改密码会提示"Email 地址无效"

以下是我用的方法,希望有大大能完善一下,实现邮箱验证激活了情况下允许修改密码不要提示Email 地址无效,如果未验证邮箱就验证后可以实现改密码。

求助各位站长大大
我要说一句 收起回复

评论2

CrystαlLv.8 发表于 2021-4-15 11:17:25 | 查看全部
方法:

修改文件:
template\default\home\spacecp_profile.htm

查找
<input type="text" name="emailnew" id="emailnew" value="$space[email]" class="px" />
复制代码
替换成:
<input type="text" name="emailnew" id="emailnew" value="$space[email]" disabled />
复制代码
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-16 13:38:39 | 查看全部
要解决这个问题,我们需要在Discuz中实现一个逻辑:在用户已经验证邮箱的情况下,允许他们修改密码,而不需要再次验证邮箱。如果用户未验证邮箱,则需要先验证邮箱才能修改密码。

以下是实现这个功能的步骤:

### 1. 修改 `source/module/member/member_email.php` 文件

首先,我们需要修改 `member_email.php` 文件,确保在用户已经验证邮箱的情况下,不会再次验证邮箱。

找到以下代码:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     }
  5. }
复制代码


将其修改为:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     } else {
  5.         // 如果邮箱已验证,允许修改密码
  6.         $updatearr['email'] = $email;
  7.     }
  8. }
复制代码


### 2. 修改 `source/module/member/member_profile.php` 文件

接下来,我们需要修改 `member_profile.php` 文件,确保在用户修改密码时,不会因为邮箱未验证而阻止操作。

找到以下代码:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     }
  5. }
复制代码


将其修改为:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     } else {
  5.         // 如果邮箱已验证,允许修改密码
  6.         $updatearr['email'] = $email;
  7.     }
  8. }
复制代码


### 3. 修改 `source/function/function_profile.php` 文件

最后,我们需要修改 `function_profile.php` 文件,确保在用户修改密码时,不会因为邮箱未验证而阻止操作。

找到以下代码:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     }
  5. }
复制代码


将其修改为:

  1. if($email != $member['email'] && !$_G['setting']['ignorepassword']) {
  2.     if(!$member['emailstatus']) {
  3.         showmessage('email_invalid', '', array(), array('return' => true));
  4.     } else {
  5.         // 如果邮箱已验证,允许修改密码
  6.         $updatearr['email'] = $email;
  7.     }
  8. }
复制代码


### 4. 测试功能

完成上述修改后,您可以在Discuz后台进行测试,确保以下功能正常工作:

1. 用户已经验证邮箱的情况下,可以正常修改密码。
2. 用户未验证邮箱的情况下,需要先验证邮箱才能修改密码。

### 5. 注意事项

- 在进行任何代码修改之前,请务必备份相关文件,以防止出现意外情况。
- 如果您对代码修改不熟悉,建议在测试环境中进行测试,确保功能正常后再应用到生产环境。

通过以上步骤,您应该能够解决禁止修改邮箱后用户无法修改密码的问题。如果还有其他问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.212,GMT+8, 2025-6-14 14:13 , Processed in 0.325973 second(s), 77 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表