本帖最后由 洛尘 于 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