Caching 如何使受密码保护的目录在每次访问时提示用户登录?

Caching 如何使受密码保护的目录在每次访问时提示用户登录?,caching,password-protection,Caching,Password Protection,我已通过主机服务器的控制面板启用了目录密码保护。它工作得很好。然而,问题是用户的浏览器正在缓存他们的登录信息,因此,如果他们离开该页面,然后返回到受密码保护的页面,则不会提示他们再次登录 我一直在阅读阻止浏览器缓存的方法,并尝试了元标记选项(pragma、cache control、expires),但这并不完全有效。仅当用户完全关闭浏览器,然后再次打开浏览器时,此功能才起作用。我希望每次用户访问页面时都能打开登录提示(有点像访问webmail页面) 我很好奇是否有某种编码可以帮助实现这一点。我

我已通过主机服务器的控制面板启用了目录密码保护。它工作得很好。然而,问题是用户的浏览器正在缓存他们的登录信息,因此,如果他们离开该页面,然后返回到受密码保护的页面,则不会提示他们再次登录

我一直在阅读阻止浏览器缓存的方法,并尝试了元标记选项(pragma、cache control、expires),但这并不完全有效。仅当用户完全关闭浏览器,然后再次打开浏览器时,此功能才起作用。我希望每次用户访问页面时都能打开登录提示(有点像访问webmail页面)


我很好奇是否有某种编码可以帮助实现这一点。我的页面仅使用css和html,这是我所熟悉的仅有的两种编码。

使用PHP验证Basic:

登录名:

<?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;
?>

$\会话['mayHaveRequest']=0;
?>
这只是你的一个例子


希望这能有所帮助。

为什么每次都要请求身份验证?每次都要请求身份验证是我老板希望的:)你有可能使用Php脚本吗?这会更安全。。我的主机确实支持Php,但是我对Php编码的经验很少…我愿意学习和尝试。所以等一下,我正在创建一个解释这个问题的答案。谢谢!我正在试验你提供的东西。这是我第一次尝试使用php。我能够创建登录页面。我不知道在密码保护的网站上PHP应该放在哪里。。因为您可以设置标题(“位置:”)以重定向用户,例如,如果用户未登录。如果您已输出内容,则无法再输出,因为标题已发送。