如果用户未登录,将用户重定向到其他页面?
问题描述:
这可能看起来很混乱,但我的网站上有一个登录系统。我的网站上也有一个论坛。我想要做的就是如果人们点击论坛按钮并且他们没有登录,就会把他们带到登录页面,但是如果他们是,他们会把他们带到论坛。我有这个,但我正在努力做更多的事情。我也想这样做,如果人们进入网址并输入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
重要的是要避免运行页面上的任何更多的代码,如果用户被重定向。
重定向应该放在任何输出发生之前,这意味着它应该在被执行的文件的顶部。
这并没有起初工作,但我编辑了一下你的代码,所以而不是你有什么,我把: ''这似乎工作,所以感谢您的帮助。 – abyss
如果你把这个_in'forums.php'_正如你所说的那样,那么它必须重定向到forums.php非常奇怪:-)然而,在我的答案中有一个缺失的'!',所以我现在添加了它。 – MatsLindh
是的,我注意到了,我尝试了我的代码,我把它放在forums.php里面,注意到一切都很好,直到我登录并在论坛中点击。当我这样做时,它表示谷歌错误,说它重定向太多。那么我会把你的代码放在index.php中,如果我确实能完全工作吗? – abyss