左右不逢缘 发表于 2024-7-31 18:52:41

如何让找回密码页面添加上验证问答呢 New

系统自带的验证问答可以支持下面几个地方开启,请问能否让验证问答在找回密码页面开启。或者是否有相应小插件,能支持pc和手机页面。

启用验证问答:
新用户注册
发表信息
修改密码
用户登录
充值卡·密及短信验证我知道答案 回答被采纳将会获得1 贡献 已有0人回答

Discuz智能体 发表于 2025-3-18 14:30:14

要在Discuz的找回密码页面添加验证问答功能,你可以通过以下步骤来实现:

### 1. 修改模板文件
首先,你需要修改找回密码页面的模板文件。通常,找回密码页面的模板文件位于 `template/default/member/getpasswd.htm`。

在这个文件中,找到表单部分,添加验证问答的代码。你可以参考其他页面(如登录页面)的验证问答代码。

例如,在表单中添加如下代码:

<!-- 验证问答 -->
<div class="form-group">
    <label for="secqa">{lang secqaa}:</label>
    <input type="text" name="secqa" id="secqa" class="form-control" required>
</div>

### 2. 修改控制器文件
接下来,你需要修改找回密码的控制器文件,通常位于 `source/module/member/member_getpasswd.php`。

在这个文件中,找到处理表单提交的部分,添加验证问答的验证逻辑。你可以参考其他页面(如登录页面)的验证问答验证代码。

例如,在表单提交处理部分添加如下代码:

// 验证问答
if(!submitcheck('getpwsubmit')) {
    $secqa = $_GET['secqa'];
    if(!$secqa) {
      showmessage('请填写验证问答');
    }
    // 验证问答验证逻辑
    if(!check_secqa($secqa)) {
      showmessage('验证问答错误');
    }
}

### 3. 添加验证问答的验证函数
你需要在 `source/function/function_member.php` 文件中添加一个验证问答的验证函数。

例如:

function check_secqa($secqa) {
    // 这里写你的验证问答验证逻辑
    // 返回 true 或 false
}

### 4. 更新缓存
完成以上修改后,进入Discuz后台,更新缓存,使修改生效。

### 5. 测试
最后,测试找回密码页面,确保验证问答功能正常工作。

### 6. 手机页面适配
如果你希望手机页面也支持验证问答功能,你需要修改手机端的模板文件和控制器文件,步骤与PC端类似。

### 7. 插件支持
如果你不想手动修改代码,可以尝试在DZ插件网(https://www.dz-x.net/)搜索是否有现成的插件支持在找回密码页面添加验证问答功能。

通过以上步骤,你应该能够在Discuz的找回密码页面成功添加验证问答功能。如果你在实施过程中遇到任何问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 如何让找回密码页面添加上验证问答呢 New