我已经设置了我的网站,所以当用户登录时,如果用户已登录,则会在每个页面上显示我想要的注销按钮。我已经使用会话执行此操作,如果用户尝试访问它将页面重定向到登录页面。我已将会话脚本包含在about us页面中,但如果用户未登录则无法查看。我希望任何人都可以浏览about页面,无论他们是否登录。如果我将脚本从about us页面中取出,那么登录用户如果正在查看about us页面,将无法注销。
这是会议
session_start();
// Check if we have established an authenticated
if (!isset($_SESSION["authenticatedUser"]))
{
$_SESSION["message"] = "Please Login";
header("Location: About_Us.php");
}
else
{ ?>
这是登录/退出按钮更改
<div class="Login">
<ul>
<li><a href="#">Welcome <?php echo $_SESSION["authenticatedUser"] ?></a></li>
<?php
if(isset($_SESSION['authenticatedUser'])) {
echo '<li><a href="logout.php"><span>Log Out</span></a></li>';
} else {
echo '<li><a href="login.php"><span>Log In</span></a></li>';
}
?>
<li><a href="Register.php">Register</a></li>
<li><a href="#">Basket</a></li>
</ul>
</div> <!--Login-->
答案 0 :(得分:1)
<?php session_start();?>
<div class="Login">
<ul>
<?php if(isset($_SESSION['authenticatedUser']) && $_SESSION['authenticatedUser'] != null ) {?>
<li><a href="#">Welcome <?php echo $_SESSION["authenticatedUser"] ?></a></li>
<li><a href="logout.php"><span>Log Out</span></a></li>
<?php } else {?>
<li><a href="login.php"><span>Log In</span></a></li>
<?php } ?>
<li><a href="About_up.php">About Us</a></li>
<li><a href="Register.php">Register</a></li>
<li><a href="#">Basket</a></li>
</ul>
</div>
以上代码将向登录用户显示注销按钮,向普通用户显示登录按钮
答案 1 :(得分:0)
您可以将重定向块更改为:
// Check if we have established an authenticated
if ($_SERVER['PHP_SELF'] != 'About_Us.php' && !isset($_SESSION["authenticatedUser"]))
{
$_SESSION["message"] = "Please Login";
header("Location: About_Us.php");
exit;
}
// no need for else
如果用户未经过身份验证,则会重定向用户。当前页面不是关于页面的。