1

我已通过托管服务器的控制面板对目录启用密码保护。它工作正常。但是,问题是用户的浏览器正在缓存他们的登录信息,因此如果他们离开页面然后返回密码保护页面 - 他们不会被提示再次登录。

我一直在阅读有关防止浏览器缓存的方法,并尝试了 META 标记选项(编译指示、缓存控制、过期),但这并不完全有效。它仅在用户完全关闭浏览器然后再次打开浏览器时才有效。我希望每次用户访问页面时都打开登录提示(有点像访问网络邮件页面)。

我很好奇是否有某种编码可以帮助解决这个问题。我的页面只是使用 css 和 html - 我熟悉的仅有的 2 种编码。

4

1 回答 1

0

使用 PHP 进行基本身份验证:

登录:

<?php session_start();$_SESSION=array();session_destroy(); ?>
<form method="POST" action="yoursite.php">
Username: <input name="username"><br>
Password: <input name="password" type="password"><br>
<button type="submit">Submit</button>
</form>

您的网站:

<?php
session_start();
if(isset($_POST['username'])) {
  $username = trim($_POST['username']);
  $userpw = trim($_POST['password']);
  //here you have to check if the credentials are correct
    $user_may_see_content = false;
  //
  if(user_may_see_content) {
   $_SESSION['mayHaveRequest']=1;
   //now go to page

  } else {
   header("Location: <link_to_loginsite>");exit();
  }

}

//if user may see page
if(isset($_SESSION['mayHaveRequest']) && $_SESSION['mayHaveRequest']==1): ?>
$_SESSION['mayHaveRequest']=0;
?>
<!-- SECRET HTML CODE FOR AUTHENTICATED USERS -->



<?php else: 
header("Location: <link_to_loginsite>");exit();
endif;
?>

这只是给你一个例子。

希望有帮助。

于 2012-10-22T16:28:13.293 回答