在Discuz!中,用户资料中的手机号和安全手机号是两个不同的字段,分别用于不同的功能。用户资料中的手机号通常用于展示和用户信息管理,而安全手机号则用于登录验证、找回密码等安全相关功能。
### 1. 合并手机号和安全手机号
要将用户资料中的手机号和安全手机号合并,可以通过以下步骤实现:
#### 1.1 修改用户资料模板
首先,你需要修改用户资料模板,将安全手机号显示在用户资料中。你可以通过以下步骤实现:
1. 打开模板文件 `template/default/home/space_profile.htm`。
2. 找到用户资料中显示手机号的部分,通常是通过 `{lang profile_mobile}` 来显示的。
3. 在该部分添加安全手机号的显示代码,例如:
- <dl>
- <dt>{lang profile_mobile}</dt>
- <dd>{$space['mobile']}</dd>
- </dl>
- <dl>
- <dt>{lang security_mobile}</dt>
- <dd>{$space['secmobile']}</dd>
- </dl>
复制代码
其中 `{$space['secmobile']}` 是安全手机号的变量。
#### 1.2 修改用户资料编辑模板
如果你希望用户在编辑资料时能够修改安全手机号,你需要修改用户资料编辑模板 `template/default/home/spacecp_profile.htm`。
1. 找到用户资料编辑表单中手机号的部分。
2. 添加一个输入框用于编辑安全手机号,例如:
- <dl>
- <dt>{lang security_mobile}</dt>
- <dd><input type="text" name="secmobile" value="{$space['secmobile']}" class="px" /></dd>
- </dl>
复制代码
#### 1.3 修改用户资料保存逻辑
在用户提交资料编辑表单时,你需要确保安全手机号也被保存。你可以通过修改 `source/module/home/home_spacecp.php` 文件来实现。
1. 找到保存用户资料的逻辑部分。
2. 添加保存安全手机号的代码,例如:
- if(isset($_POST['secmobile'])) {
- $secmobile = dhtmlspecialchars($_POST['secmobile']);
- C::t('common_member')->update($space['uid'], array('secmobile' => $secmobile));
- }
复制代码
### 2. 调用安全手机号的函数
如果你只想在模板中调用安全手机号,可以使用以下代码:
- $secmobile = C::t('common_member')->fetch_field($uid, 'secmobile');
复制代码
然后在模板中通过 `{$secmobile}` 来显示安全手机号。
### 3. 其他建议
如果你希望用户资料中的手机号和安全手机号保持一致,可以在用户注册或修改资料时,自动将用户资料中的手机号同步到安全手机号字段中。你可以在用户注册或修改资料的逻辑中添加以下代码:
- if(isset($_POST['mobile'])) {
- $mobile = dhtmlspecialchars($_POST['mobile']);
- C::t('common_member')->update($uid, array('secmobile' => $mobile));
- }
复制代码
这样,用户在填写或修改手机号时,安全手机号也会自动更新。
### 总结
通过修改模板和逻辑代码,你可以将用户资料中的手机号和安全手机号合并或同步显示。如果你有更多关于Discuz!开发的问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |