手机版本修改密码后,再次登录会返回到修改密码页面,但是点击返回按钮又退出了登录
全部手机触屏版都是这样按照电脑的退出方式,退出后返回退出前页面,但是手机模板和电脑不同,一般修改密码页面也就是顶部导航只有一个返回按钮,只要点击返回就退出登录。现在官方这个模板也是这样。修改完密码再次登录,进入了退出前的修改密码页面,这样再次登录后是进入密码修改页面,没其他办法去进入首页,点击返回,又退出登录了。有没办法修改密码后,再次登录可以指向其页面。 根据您描述的问题,结合Discuz核心机制和移动端开发规范,建议通过以下两种方式解决:**一、修改跳转逻辑(推荐方案)**
1. 找到手机模板的密码修改处理文件:
source/module/member/member_getpasswd.php
2. 在密码修改成功的处理逻辑后(约第308行)修改跳转地址:
// 原代码
showmessage('getpasswd_succeed', dreferer(), array(), array('alert' => 'right'));
// 修改为强制跳转首页
showmessage('getpasswd_succeed', 'forum.php?mobile=2', array(), array('alert' => 'right'));
**二、前端模板调整(备选方案)**
1. 修改模板文件:
template/default/touch/member/getpasswd.htm
2. 在表单提交处增加隐藏字段:
<input type="hidden" name="referer" value="forum.php?mobile=2">
**三、会话保持优化**
在修改密码成功后,建议在服务端强制刷新登录状态:
// 修改密码成功后添加
require_once libfile('function/member');
clearcookies();
setloginstatus(array('uid' => $member['uid'], 'username' => $member['username']), 2592000);
**四、返回按钮逻辑修正**
找到导航栏模板文件:
template/default/touch/common/header.htm
修改返回按钮的链接生成逻辑:
// 原代码
history.back();
// 修改为
window.location.href = "forum.php?mobile=2";
以上修改需根据实际模板路径进行调整,建议修改前做好文件备份。若使用第三方手机模板,需要检查模板目录中的对应文件路径。修改完成后请更新模板缓存,并在多浏览器环境下测试跳转流程。
这种方案既保持了Discuz核心机制,又通过精准的跳转控制实现了预期的用户体验。实际开发中我们通常会结合服务端跳转和前端JS控制来实现更稳定的跳转逻辑。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 这个问题是由于Discuz手机触屏版的页面跳转逻辑导致的。在修改密码后,系统默认会返回到修改密码的页面,而手机触屏版的导航设计较为简单,通常只有一个返回按钮,点击返回按钮会触发退出登录的操作。
要解决这个问题,你可以通过修改代码来实现修改密码后跳转到指定页面(如首页)的功能。以下是具体的解决方案:
### 1. 修改密码后的跳转逻辑
你可以在修改密码成功后,手动设置跳转的URL,使其跳转到首页或其他指定页面。
#### 修改文件:`source/module/member/member_logging.php`
找到修改密码成功的代码部分,通常在修改密码成功后会有类似以下的代码:
showmessage('profile_passwd_succeed', dreferer(), array(), array('showmsg' => true, 'locationtime' => 3));
你可以将`dreferer()`替换为你想要跳转的URL,例如跳转到首页:
showmessage('profile_passwd_succeed', 'forum.php', array(), array('showmsg' => true, 'locationtime' => 3));
这样,修改密码成功后,用户将被重定向到首页。
### 2. 修改手机触屏版的返回按钮逻辑
如果你希望在手机触屏版中,点击返回按钮时不会退出登录,而是返回到指定页面,你可以修改手机模板中的相关代码。
#### 修改文件:`template/default/touch/common/header.htm`
找到返回按钮的代码部分,通常在头部模板中会有类似以下的代码:
<a href="javascript:history.back();" class="back">返回</a>
你可以将`history.back()`替换为指定的URL,例如返回到首页:
<a href="forum.php" class="back">返回</a>
这样,点击返回按钮时,用户将被重定向到首页,而不会退出登录。
### 3. 使用插件或扩展功能
如果你不想手动修改代码,也可以考虑使用一些插件或扩展功能来实现这个需求。你可以在DZ插件网(https://www.dz-x.net/)上搜索相关的插件,看看是否有现成的解决方案。
### 总结
通过修改代码或使用插件,你可以实现修改密码后跳转到指定页面的功能,避免用户在手机触屏版中陷入循环登录的问题。如果你对代码修改不熟悉,建议在修改前备份相关文件,并在测试环境中进行测试,确保修改不会影响其他功能。
如果你有其他问题或需要进一步的帮助,请随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]