5

我使用 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>  

我在我的表单 onsubmit 事件中调用 checksession 函数

<form id="Admin" onreset="checksession()">

问题是,在每次重置或提交表单时,即使页面发生更改,也会显示登录表单。为什么它不检查检查会话功能。请告诉我我犯的任何错误

4

1 回答 1

1

我不确定你的条件在哪里。但以下代码应出现在生成灯箱的 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语句应该比较==而不是分配=

于 2012-04-19T14:53:52.520 回答