经过身份验证的用户可查看的页

时间:2014-03-25 18:33:46

标签: php

我已经设置了我的网站,所以当用户登录时,如果用户已登录,则会在每个页面上显示我想要的注销按钮。我已经使用会话执行此操作,如果用户尝试访问它将页面重定向到登录页面。我已将会话脚本包含在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-->

2 个答案:

答案 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

如果用户未经过身份验证,则会重定向用户。当前页面不是关于页面的。