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

昵称方法或插件BUG修改

744 2
发表于 2021-10-6 07:03:24 | 查看全部 阅读模式

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

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

×
就是把贴内用户信息,主题回贴列表及内容里。在线人员名单。广播,发短消息等一切显示用户名的地方全改成昵称。
只在管理员查看后台用户的时候,才是显示用户名。
其实后台有个昵称插件(应用 中心搜索昵称,那个139元的就是)。在别人网站上试了一下,冒似设置昵称后有BUG。
具体表现为:如用户名为123,设置昵称为456后。虽然昵称显示正常(用户名123也能正常登录网站,设置里显示的用户名变成了456)。
管理员进入后台后,查找用户时竟然找不到用户123了,只能找到用户456。而此时发现在uccenter里用户名还是123.
那么问题来了。这时如果用户123修改密码时会提示修改的是用户456的密码。找回密码也会提示找回的是用户456的密码。有什么方法避免修改昵称时把用户名也改掉的BUG呢???
谢谢大家,我也不知道大家听懂了没有。。。
我要说一句 收起回复

评论2

IT618发布Lv.8 发表于 2021-10-6 07:03:33 | 查看全部
建议你明早九时半后问插件作者。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 08:04:28 | 查看全部
你提到的这个问题确实是一个常见的BUG,尤其是在使用昵称插件时。根据你的描述,问题的核心在于昵称插件在修改昵称时,错误地将用户名也修改了,导致后台管理和用户操作时出现混淆。

### 问题分析
1. **用户名和昵称混淆**:插件在设置昵称时,错误地将用户名也修改为昵称,导致后台查找用户时出现问题。
2. **密码修改和找回问题**:由于用户名被错误地修改为昵称,用户在修改密码或找回密码时,系统会错误地认为他们在操作昵称对应的用户,而不是原始用户名对应的用户。

### 解决方案
要解决这个问题,可以从以下几个方面入手:

#### 1. **修改插件代码**
   你需要检查插件的代码,确保在设置昵称时,只修改昵称字段,而不影响用户名字段。通常,用户名和昵称是两个独立的字段,插件应该只操作昵称字段。

   例如,在插件的设置昵称功能中,确保代码类似于以下逻辑:
  
  1. // 假设 $uid 是用户ID,$nickname 是新昵称
  2.    C::t('common_member')->update($uid, array('nickname' => $nickname));
复制代码

   而不是:
  
  1. C::t('common_member')->update($uid, array('username' => $nickname));
复制代码


#### 2. **后台用户查找逻辑**
   在后台查找用户时,确保查找逻辑是基于用户名(`username`)而不是昵称(`nickname`)。你可以修改后台的用户查找功能,确保它始终基于用户名进行查找。

   例如,在后台的用户查找功能中,确保代码类似于:
  
  1. $user = C::t('common_member')->fetch_by_username($username);
复制代码

   而不是:
  
  1. $user = C::t('common_member')->fetch_by_nickname($nickname);
复制代码


#### 3. **密码修改和找回逻辑**
   在密码修改和找回密码的功能中,确保系统始终基于用户名进行操作,而不是昵称。你可以检查相关代码,确保它始终使用用户名字段。

   例如,在密码修改功能中,确保代码类似于:
  
  1. $user = C::t('common_member')->fetch_by_username($username);
复制代码

   而不是:
  
  1. $user = C::t('common_member')->fetch_by_nickname($nickname);
复制代码


#### 4. **Ucenter同步问题**
   由于你提到Ucenter中的用户名仍然是正确的,说明插件可能没有正确同步Ucenter中的用户名。你可以检查插件的Ucenter同步逻辑,确保在修改昵称时,不会影响Ucenter中的用户名。

   例如,在插件的Ucenter同步逻辑中,确保代码类似于:
  
  1. uc_user_edit($username, '', '', $nickname, 0);
复制代码

   而不是:
  
  1. uc_user_edit($nickname, '', '', $nickname, 0);
复制代码


### 总结
通过以上修改,你可以确保昵称插件在设置昵称时,不会错误地修改用户名,从而避免后台管理和用户操作时出现混淆。如果你不熟悉代码修改,建议联系插件的开发者或寻求专业的技术支持。

如果你需要进一步的帮助,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.223.211.185,GMT+8, 2025-4-1 16:46 , Processed in 0.328308 second(s), 83 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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