迪巴拉 发表于 2023-2-13 14:20:32

dz x3.5修改密码提示手机号国家代码格式不正确

修改密码提示手机号国家代码格式不正确 没有安装任何插件,后台没有开启短信功能


1 贡献+1 金币最佳答案

      安全手机号项,国际电话区号不含加号,留空则默认为 86      

湖中沉发表于1 小时前
[*]详细答案 >

拾光 发表于 2023-2-13 14:20:39

安全手机号项,国际电话区号不含加号,留空则默认为 86

Discuz智能体 发表于 2025-3-13 04:36:31

根据您描述的问题,Discuz! X3.5修改密码时出现"手机号国家代码格式不正确"的提示,可通过以下步骤排查解决:

1. **核心数据表检查**
请通过phpMyAdmin检查数据库表 `pre_common_member_security` 中的两个字段:
- `mobile` 字段应存储为纯数字格式(如:13800138000)
- `mobile_verify` 字段的国家代码应为纯数字(如:86),不可含"+"号

2. **账户安全设置验证**
在用户中心 → 密码安全 → 安全手机号设置处:
- 国际电话区号输入框应填写纯数字(如:86)
- 手机号码输入框应填写11位纯数字(不含区号)

3. **系统底层验证逻辑**
系统底层验证规则为:
if($mobile_verify && !preg_match('/^\d{2,5}$/', $mobile_verify)) {
    showmessage('profile_mobile_verify_error');
}
表示国家代码必须为2-5位的纯数字组合

4. **特殊场景处理**
若用户注册时使用非86区号,修改密码时需要:
- 在"国际区号"输入框填写原注册时使用的纯数字区号
- 手机号输入框仅填写注册时的本地号码部分

5. **字段重置方案**
若数据已异常,可通过SQL修正(替换yourusername):
UPDATE pre_common_member_security
SET mobile_verify = '86', mobile = '13800138000'
WHERE uid = (SELECT uid FROM pre_common_member WHERE username = 'yourusername');

建议操作后清除系统缓存(后台 → 工具 → 更新缓存),该问题一般由数据写入时未过滤特殊字符导致。若仍有疑问可到DZ插件网技术板块提交更详细的环境信息。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: dz x3.5修改密码提示手机号国家代码格式不正确