·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

X3.5 登录&退出后转回之前页面不会自动刷新跳转,如何使其自动跳转上个从操作页面?

185 2
发表于 2023-2-25 17:55:46 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
X3.5 在登录&退出后转回之前页面不会自动刷新跳转
如何使其自动跳转上个从操作页面?


我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 05:11:21 | 查看全部
在Discuz! X3.5中,登录或退出后默认会跳转回之前的页面,但有时可能会出现页面没有自动刷新的情况。这通常是由于缓存或某些设置问题导致的。你可以通过以下几种方式来解决这个问题:

### 1. 检查模板文件
确保你的模板文件中没有对跳转逻辑进行修改。通常情况下,Discuz! 的登录和退出操作会自动处理跳转逻辑。你可以检查以下文件:

- `template/default/member/login.htm`(登录页面模板)
- `template/default/member/logout.htm`(退出页面模板)

确保这些文件中的跳转逻辑没有被修改或破坏。

### 2. 使用 `referer` 参数
Discuz! 默认会使用 `referer` 参数来记录用户之前的页面地址,并在登录或退出后跳转回该页面。你可以确保在登录和退出时正确传递 `referer` 参数。

例如,登录链接可以这样写:
  1. <a href="member.php?mod=logging&action=login&referer=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>">登录</a>
复制代码


退出链接可以这样写:
  1. <a href="member.php?mod=logging&action=logout&formhash=<?php echo FORMHASH; ?>&referer=<?php echo urlencode($_SERVER['REQUEST_URI']); ?>">退出</a>
复制代码


### 3. 修改跳转逻辑
如果你需要自定义跳转逻辑,可以在 `source/module/member/member_logging.php` 文件中找到登录和退出的处理逻辑。你可以修改跳转的逻辑,确保在登录或退出后正确跳转回之前的页面。

例如,在登录成功后,你可以添加以下代码来强制刷新页面:
  1. dheader("Location: " . $_G['siteurl'] . $_G['referer']);
复制代码


### 4. 清除缓存
有时浏览器缓存可能会导致页面没有自动刷新。你可以尝试清除浏览器缓存,或者在跳转时添加一个随机参数来强制刷新页面:
  1. dheader("Location: " . $_G['siteurl'] . $_G['referer'] . "&rand=" . rand(1000, 9999));
复制代码


### 5. 使用JavaScript强制刷新
如果你希望在页面跳转后强制刷新页面,可以在模板文件中使用JavaScript来实现:
  1. <script type="text/javascript">
  2.     window.location.reload();
  3. </script>
复制代码


### 6. 检查插件冲突
如果你安装了某些插件,可能会导致登录或退出后的跳转逻辑出现问题。你可以尝试禁用最近安装的插件,看看问题是否得到解决。

### 7. 更新Discuz!版本
如果你使用的是较旧的Discuz!版本,建议更新到最新版本,以确保所有已知的问题都得到了修复。

通过以上方法,你应该能够解决Discuz! X3.5登录和退出后页面不自动刷新跳转的问题。如果问题仍然存在,建议进一步检查服务器配置或联系DZ插件网的技术支持团队获取帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-20 05:11:29 | 查看全部
在Discuz X3.5中实现登录/退出后自动跳转回原页面,可通过以下三种方案实现:

方案一:核心参数补全
1. 修改登录入口链接为:
  1. <a href="/logging.php?action=login&referer={urlencode(get_current_page())}">登录</a>
复制代码

2. 退出功能建议改用POST方式提交,在退出按钮所在form内增加隐藏域:
  1. <input type="hidden" name="referer" value="{$_SERVER['HTTP_REFERER']}">
复制代码


方案二:模板层强制跳转(推荐)
在模板文件(template/default/member/login.htm)登录成功后区块插入:
  1. <!--{if $_GET['action'] == 'login'}-->
  2. <script>
  3. if(window.parent == window){
  4.     location.href = decodeURIComponent('{$_G.referer}');
  5. }else{
  6.     window.parent.location.reload();
  7. }
  8. </script>
  9. <!--{/if}-->
复制代码


方案三:底层代码修正
修改source/class/class_member.php,在_logout()方法尾部添加:
  1. if(!defined('IN_MOBILE')) {
  2.     dheader("Location: ".dreferer());
  3. }
复制代码


注意事项:
1. 所有URL参数需用rawurlencode处理特殊字符
2. 移动端需单独处理SPA跳转逻辑
3. 第三方插件可能覆盖默认跳转机制,建议用Hook机制增强:
  1. // 在source/function/function_core.php中注册Hook
  2. Hook::add('login_succeed', 'custom_redirect');
  3. function custom_redirect(){
  4.     $referer = $_GET['referer'] ?: dreferer();
  5.     dheader("Location: $referer");
  6. }
复制代码


建议优先采用方案二进行模板层修正,该方案不涉及核心文件修改,升级兼容性更好。若仍不生效,可结合浏览器控制台查看Network请求中的302跳转路径是否包含正确referer参数。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.10,GMT+8, 2025-5-31 06:16 , Processed in 0.612958 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表