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 に答える