>我使用 JavaScript 函数在灯箱上制作了一个登录表单。现在我想在会话变量上存储一个值,以便检查用户是否已登录,而不是在页面上的导航中一次又一次地向他显示登录灯箱。我的javascript函数是:
<script language="javascript" type="text/javascript">
function createlightbox()
{
document.getElementById('light').style.display='block';
document.getElementById('fade').style.display='block'
}
function closelightbox()
{
document.getElementById('light').style.display='none';
document.getElementById('fade').style.display='none'
}
function checksession()
{ if (admin=="admin")
{closelightbox();}
else
{createlightbox();}
}
function check(form)/*function to check userid & password*/
{
/*the following code checkes whether the entered userid and password are matching*/
if(form.name.value == "admin" && form.password.value == "admin")
{
closelightbox();
var admin = <?php $_SESSION['Admin']= 1; ?>
}
else
{
document.getElementById("error").style.display='block';/*displays error message*/
}
}
</script>
我在我的表单提交事件中调用检查会话函数为
<form id="Admin" onreset="checksession()">
问题是,每次重置或提交表单时,即使在页面更改时,也会显示登录表单。为什么它不检查检查会话功能。请告诉我我犯的任何错误
我不确定你的条件在哪里。但是以下代码应该出现在生成灯箱的 PHP 脚本中:
<?php echo '<script> var admin ='.$_SESSION['Admin'].'</script>'; ?>
(要检查上面是否正常工作,您可以查看页面的源代码,看看是否有类似:<script> var admin =1</script>
的行)
访问上面设置的管理变量之前,应执行以下操作:
<script language="javascript" type="text/javascript">
.... //other code
function checksession()
{ if(admin =="admin")
{closelightbox();}
else
{createlightbox();}
}
....
另请注意,if
语句应进行比较==
而不是分配=