UPUPD技术论坛

标题: 修复Discuz登录后不跳转到登录前页面而是跳到首页 [打印本页]

作者: 洛尘    时间: 2015-4-27 10:00
标题: 修复Discuz登录后不跳转到登录前页面而是跳到首页
本帖最后由 洛尘 于 2015-4-27 02:02 编辑

在使用 Discuz 中,当用户没有登录的时候浏览帖子,这个时候,如果用户想要回复或者发表帖子,那么就需要登录,正确的逻辑是登录后跳转到帖子的回复或者发布页面,但是有的站长的论坛不管在什么时候登录都是跳转到首页,下面就讲解怎样解决Discuz登录后不跳转到登录前页面而是跳到首页。

解决方法一
如果你的discuz版本是7.0,很多站长的情况就是登陆后跳转到首页。这个BUG的缘由是后台关闭浮动窗口后,所以登录后就自动跳转到首页,无法跳转到登录前页面。
1.第一步
打开templates\default\login.htm,找到下面的代码:


12  <input type="hidden" name="formhash" value="{FORMHASH}" />  <div class="loginform nolabelform">
在这两句中间加上下面这句代码:
1  <input type="hidden" name="referer" value="$ref" />
最后的代码是
123  <input type="hidden" name="formhash" value="{FORMHASH}" />   <input type="hidden" name="referer" value="$ref" />  <div class="loginform nolabelform">
2.第二步
还是在templates\default\login.htm中,找到如下代码:

12  $('messageright').innerHTML = '<h1><a href="{echo dreferer()}">{lang login_location}</a></h1>';  setTimeout("window.location.href='{echo dreferer()}'", $mrefreshtime);
将其替换成如下代码:
12  $('messageright').innerHTML = '<h1><a href="{echo $referer}">{lang login_location}</a></h1>';  setTimeout("window.location.href='{echo $referer}'", $mrefreshtime);
3.第三步
找到templates\default\header.htm打开,查找下面的代码:

1  logging.php?action=login
把上面的代码替换成下面的代码,注意有两个查找结果,都需要替换层下面的代码
1  logging.php?action=login&ref=<!--{echo rawurlencode($_SERVER['REQUEST_URI']);}-->
根据上面的三步修改后就应该正确跳转了。

解决方法二
找到 /templates/default/中的login.htm,打开大约在51行左右,找到下面的代码

1  <input type="hidden" name="formhash" value="{FORMHASH}" />
在下面加入
1  <input type="hidden" name="referer" value="$referer" />
修改后的代码如下所示:
12  <input type="hidden" name="formhash" value="{FORMHASH}" />  <input type="hidden" name="referer" value="$referer" />
原创文章,转载请注明: 转载自梦想网络






欢迎光临 UPUPD技术论坛 (http://bbs.upupd.com/) Powered by Discuz! X3.2