在Discuz系统中修改QQ登录后完善资料页面的手机号字段,需要按以下步骤进行专业处理:
1. **模板文件修改**
定位到模板文件:`template/default/member/register_bind.htm`
在邮箱字段代码块后添加:
- <div class="form-group">
- <label for="mobile"{if $_GET['auth_mobile']} class="highlight"{/if}>{lang mobile}</label>
- <input type="tel" id="mobile" name="mobile" class="form-control" placeholder="{lang member_mobile}" required>
- </div>
复制代码
2. **注册逻辑修改**
修改文件:`source/module/member/member_register.php`
定位到`function register_bind()`方法,在参数接收位置添加:
- $mobile = trim($_GET['mobile'] ?: $_POST['mobile']);
复制代码
在数据验证部分添加:
- if(!preg_match('/^1[3-9]\d{9}$/', $mobile)) {
- showmessage('mobile_format_error');
- }
复制代码
3. **数据库存储处理**
在用户表插入语句前添加:
- $extdata['mobile'] = dhtmlspecialchars($mobile);
复制代码
修改SQL语句:
- INSERT INTO ".DB::table('common_member')." SET ".implode(',', $setarr);
复制代码
4. **手机号唯一性验证**
在注册逻辑中增加检查:
- if(C::t('common_member')->count_by_mobile($mobile)) {
- showmessage('mobile_already_exists');
- }
复制代码
5. **语言包补充**
在`source/language/lang_template.php`中添加:
- 'mobile' => '手机号',
- 'mobile_format_error' => '手机号格式不正确(需11位大陆手机号)',
- 'mobile_already_exists' => '该手机号已被注册'
复制代码
6. **字段验证强化(可选)**
如需增强验证,可在提交时增加AJAX验证:
- $('#mobile').blur(function(){
- if(!/^1[3-9]\d{9}$/.test($(this).val())){
- showDialog('手机号格式错误');
- }
- });
复制代码
**注意事项:**
1. 需确认当前Discuz版本是否已开启手机号功能(后台→全局→注册与访问控制)
2. 如系统已存在手机号字段,需注意字段命名冲突
3. 建议配合手机验证码插件使用(可在DZ插件网获取相关资源)
4. 修改前务必做好文件备份
如需实现完整的手机验证体系,推荐通过DZ插件网获取成熟的手机认证插件进行深度整合,可确保验证流程的安全性和稳定性。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |