我已通过托管服务器的控制面板在目录上启用了密码保护。它工作正常。然而,问题在于用户的浏览器正在缓存他们的登录信息,因此如果他们离开页面然后返回到受密码保护的页面 - 则不会提示他们再次登录。
我一直在阅读有关阻止浏览器缓存的方法,并尝试过META标记选项(编译指示,缓存控制,过期),但这并不完全有效。仅当用户完全关闭浏览器,然后再次打开浏览器时,它才有效。我希望登录提示能够在用户访问页面的每一次打开(有点像访问网页邮件页面)。
我很好奇是否有某种编码可以帮助解决这个问题。我的页面只是使用css和html - 我熟悉的仅有的两个编码。
答案 0 :(得分:0)
使用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>
YourSite:
<?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;
?>
这只是一个例子。
希望有所帮助。