本帖最后由 洛尘 于 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" /> |
|
|
|
|
|
共 0 个关于本帖的回复 最后回复于 2015-4-27 10:00