我正在构建一个网站,我希望用户必须登录才能查看certin页面(在这种情况下,它被称为gallery.php)我实现了一些我在这个网站上找到的代码,重定向了用户当他们点击菜单中的图库链接时返回登录页面。但是,当我登录并再次重定向到图库时,网站不会确认我已登录并再次将我重定向回登录页面。我知道之前已经问过这样的问题,但是我们将不胜感激。我的代码如下:
//from login.html
<!--//
/*This Script allows people to enter by using a form that asks for a
UserID and Password*/
function pasuser(form) {
if (form.id.value=="Admin") {
if (form.pass.value=="rycbar123") {
var sessionTimeout = 1; //hours
var loginDuration = new Date();
loginDuration.setTime(loginDuration.getTime()+(sessionTimeout*60*60*1000));
document.cookie = "SistaDansenSession=Valid; "+loginDuration.toGMTString()+"; path=gallery.php";
location="gallery.php"
} else {
alert("Invalid Password")
}
} else { alert("Invalid UserID")
}
}
//from gallery.php
<!--force login code-->
<script type="text/javascript">
if (document.cookie.indexOf("SistaDansenSession=Valid") == -1) {
alert("You must be logged in to view this page")
location.href = "login.html";
}
else {
alert("login succesful")
} </script>
非常感谢
答案 0 :(得分:0)
尝试更改:
if (document.cookie.indexOf("SistaDansenSession=Valid") == -1)
到
if (document.cookie.indexOf("SistaDansenSession") < 0)
设置Cookie时,您正在设置Cookie属性&#39; SistaDansenSession&#39;等于&#39;有效&#39;。在原始代码中,您正在尝试检索Cookie属性&#39; SistaDansenSession = Valid&#39;,而您要检索的属性只是SistaDansenSession&#39;。当设置cookie时,该属性存在,因此它将具有> = 0的索引。在这种情况下,不会发生重定向到登录 - 我认为这是您期望的行为。