如果用户未登录,将用户重定向到其他页面?

问题描述:

这可能看起来很混乱,但我的网站上有一个登录系统。我的网站上也有一个论坛。我想要做的就是如果人们点击论坛按钮并且他们没有登录,就会把他们带到登录页面,但是如果他们是,他们会把他们带到论坛。我有这个,但我正在努力做更多的事情。我也想这样做,如果人们进入网址并输入www.example.com/forums.php,它会检查他们是否已登录,如果他们不是,将他们带回登录页面,如果他们是,继续把他们带到那里。我试过这个,但它只适用于我说的第一部分,而不是其他部分。如果用户未登录,将用户重定向到其他页面?

<!-- Main Content --> 
     <p class="japanese">プレーンズ</p> 
     <p class="dev" contenteditable>currently under development</p> 
     <p class="clock"></p> 
     <p class="login"><a href="login.php">login</a></p> 
     <p class="register"><a href="register.php">register</a></p> 
     <?php 
      if (isset($_SESSION['u_username'])) { 
       echo '<p class="forums"><a href="forums.php">forums</a></p>'; 
      } else { 
       echo '<p class="forums"><a href="login.php">forums</a></p>'; 
      } 
     ?> 

在您forums.php的顶部,检查会话处于活动状态,如果没有,发出HTTP重定向。

<?php 
if (!isset($_SESSION['u_username'])) { 
    header('Location: login.php'); 
    exit(); 
} 

exit重要的是要避免运行页面上的任何更多的代码,如果用户被重定向。

重定向应该放在任何输出发生之前,这意味着它应该在被执行的文件的顶部。

+0

这并没有起初工作,但我编辑了一下你的代码,所以而不是你有什么,我把: ''这似乎工作,所以感谢您的帮助。 – abyss

+0

如果你把这个_in'forums.php'_正如你所说的那样,那么它必须重定向到forums.php非常奇怪:-)然而,在我的答案中有一个缺失的'!',所以我现在添加了它。 – MatsLindh

+0

是的,我注意到了,我尝试了我的代码,我把它放在forums.php里面,注意到一切都很好,直到我登录并在论坛中点击。当我这样做时,它表示谷歌错误,说它重定向太多。那么我会把你的代码放在index.php中,如果我确实能完全工作吗? – abyss