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

修改密码保存后弹出这个安全手机号国际电话区号格式不正确

544 2
发表于 2023-7-7 14:03:10 | 查看全部 阅读模式

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

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

×
RT

这个问题如何解决?
社区版本是从x3.4最新版升级到x3.5的
修改密码保存后弹出这个安全手机号国际电话区号格式不正确 修改,密码,保存,弹出,这个

我知道答案 回答被采纳将会获得1 贡献 已有0人回答
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-12 07:24:34 | 查看全部
根据Discuz! X3.5版本升级后的新安全机制要求,出现"安全手机号国际电话区号格式不正确"的问题可以通过以下步骤解决:

1. **数据格式验证**:
检查数据库中pre_common_member字段下的国际电话区号字段`countrycode`,X3.5要求必须包含国际冠字码(如中国大陆是+86)。可以通过phpMyAdmin执行:
  1. SELECT uid,mobile,countrycode FROM pre_common_member WHERE countrycode NOT LIKE '+%'
复制代码


2. **批量修正数据**:
对不符合格式的数据执行更新(以中国大陆为例):
  1. UPDATE pre_common_member
  2. SET countrycode = '+86'
  3. WHERE countrycode = '86' OR countrycode = '086' OR countrycode = ''
复制代码


3. **字段关联修正**:
检查pre_common_member_verify字段的关联数据:
  1. ALTER TABLE pre_common_member_verify
  2. MODIFY COLUMN `mobile` varchar(20) NOT NULL DEFAULT '',
  3. MODIFY COLUMN `verify` varchar(20) NOT NULL DEFAULT ''
复制代码


4. **验证规则调整**(可选):
修改文件`/source/class/class_member.php`第672行:
原正则:
  1. preg_match('/^\+(\d{1,4})$/', $countrycode)
复制代码

调整为:
  1. preg_match('/^(\+?\d{1,4})$/', $countrycode)
复制代码


5. **模板文件适配**:
检查模板文件(默认模板为`/template/default/member/security_mobile.htm`)中的输入框格式:
  1. <input type="text" name="countrycode" class="px" value="{$countrycode}" placeholder="+86">
复制代码


**特别注意**:如果是从X3.4升级的用户,建议在升级完成后通过DZ插件网的[数据校验工具]进行字段完整性检查。修改核心文件前请做好备份,避免后续升级被覆盖。若仍有问题,可提供具体错误截图以便进一步分析定位。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 08:42:49 | 查看全部
这个问题通常是由于在升级到Discuz! X3.5后,系统对安全手机号的国际电话区号格式进行了更严格的校验。在X3.5版本中,国际电话区号需要符合特定的格式要求,否则在修改密码时会提示“安全手机号国际电话区号格式不正确”。

### 解决方法:

1. **检查用户资料中的手机号格式**:
   - 登录后台,进入“用户” -> “用户管理”,找到对应的用户。
   - 检查该用户的“安全手机号”字段,确保国际电话区号的格式正确。
   - 国际电话区号通常以“+”开头,例如中国的区号是“+86”。

2. **手动修改用户资料**:
   - 如果发现用户的手机号格式不正确,可以手动修改为正确的格式。
   - 例如,如果用户的手机号是“8613812345678”,应该修改为“+8613812345678”。

3. **批量更新用户资料**:
   - 如果有很多用户的手机号格式不正确,可以通过SQL语句批量更新。
   - 例如,使用以下SQL语句将手机号格式更新为正确的格式:
   
  1. UPDATE pre_common_member SET secmobileseccode = CONCAT('+', secmobileseccode) WHERE secmobileseccode NOT LIKE '+%';
复制代码

   - 注意:在执行SQL语句之前,请务必备份数据库。

4. **检查插件或模板的兼容性**:
   - 如果你安装了第三方插件或模板,确保它们与X3.5版本兼容。
   - 有些插件可能会修改用户资料的处理逻辑,导致格式校验失败。

5. **更新缓存**:
   - 在修改完用户资料后,记得更新缓存,以确保修改生效。
   - 进入后台,点击“工具” -> “更新缓存”,选择“数据缓存”和“模板缓存”进行更新。

### 总结:
这个问题主要是由于X3.5版本对国际电话区号格式的校验更加严格导致的。通过检查并修正用户资料中的手机号格式,可以解决这个问题。如果问题依然存在,建议检查是否有插件或模板影响了用户资料的处理逻辑。

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

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.22.79.2,GMT+8, 2025-5-14 07:45 , Processed in 0.254385 second(s), 76 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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