2016-08-05 6 views
1

私はウェブサイトの作成に関する学校プロジェクトを行っています。私はアカウントにサインアップすると、ユーザーデータをローカルストレージに保存することができました。私は昨日次のコードを試してみると、コードが動作する可能性があります。 ユーザーとしてログインした後、キー 'currentUser'がローカルストレージに表示されます。しかし、ローカルストレージ(アレイ内のユーザーが多すぎます)をクリアしてコードを再実行すると、currentUserはローカルストレージに表示されなくなります。 `ログイン時にローカルストレージにオブジェクトを表示

<script> 
var currentUser=null; 
document.addEventListener("DOMContentLoaded",loadUserData); 

function loadUserData() { 
currentUser = localStorage.getItem("currentUser"); 
if(currentUser!=null) { 
currentUser = JSON.parse(currentUser); 

    } 
} 
</script> 

上記のコードは、プラスこれは、ログインHTMLからローカルストレージにキーとしてあるCurrentUserを(唯一の現在のユーザーとしてログインすると表示されます)を示しています。プロフィールを編集ページから : ここに私のコードですログインページから :

function checkUser(ev) { 
      ev.preventDefault(); 
      var status=false; 

      var username = document.getElementById("username").value; 
      var password = document.getElementById("password").value; 


      for(var i=0;i<userList.length;i++) { 
      var u=userList[i]; 
      console.log(u.username); 
      console.log(u.password); 
      if (u.username==username && u.password==password){ 
      status=true; 
      currentUser=userList[i]; 
      break; 
      } 
      } 

      if (status==true){ 
      location.href="EditProfile.html"; 
      } 

    } 

は、私は私の友人を求めてきました、彼女は私が私のユーザー名とパスワードと呼ば方法が誤っていたことを言った、と私は私のコードの大部分を書き換える必要があること?

答えて

0

ユーザーへのログイン中にlocalStorageに保存する必要があります。ユーザーがログアウトすると、localStorage CurrentUser Keyをクリアする必要があります。このような

何か:

function checkUser(ev) { 
     ev.preventDefault(); 
     var status=false; 
     var username = document.getElementById("username").value; 
     var password = document.getElementById("password").value; 


     for(var i=0;i<userList.length;i++) { 
     var u=userList[i]; 
     console.log(u.username); 
     console.log(u.password); 
     if (u.username==username && u.password==password){ 
     status=true; 
     localStorage.setItem('CurrentUser', username); 
     currentUser=userList[i]; 
     break; 
     } 
     } 

     if (status==true){ 
     location.href="EditProfile.html"; 
     } 

} 

ユーザーがログアウト時のlocalStorageからキーを削除するために使用します。

localStorage.removeItem(key);

+0

こんにちは、CurrentUserには、ローカルストレージに現れなかったん、しかし値でそれが唯一のユーザー名が表示されます。どのようにしてcurrentUserをオブジェクトにして、{"username": "staff"、 "name": "alice tan"、 "password": "123"}のようなsthを表示するようにしますか?ローカルストレージに表示されたものは次のとおりです。スタッフ(現在のユーザーの価値の低い部分) – blackJack

0

5MB以上のデータを保存できないHTML5のローカルストレージを使用しています。 ローカル記憶域とセッション記憶域にユーザー名とパスワードを格納する際に、プログラミングの悪い習慣を使用するたびに発生します。人々があなたのサイトに浸透できるようにしています。サーバー側で使用しているプログラミング言語のセッションを使用してみてください。 あなたは自分自身でセッションを破壊し、明らかに値を再び取得しません。したがって、良いプログラミング習慣を使用してサーバー側です。ご提案いただきありがとうございます

0

単にこの

function checkUser(ev) { 
    ev.preventDefault(); 
    var status=false; 

    var username = document.getElementById("username").value; 
    var password = document.getElementById("password").value; 


    for(var i=0;i<userList.length;i++) { 
    var u=userList[i]; 
    console.log(u.username); 
    console.log(u.password); 
    if (u.username==username && u.password==password){ 
    status=true; 
        localStorage.setItem("currentUser",u);//store whole data of logged user 
    currentUser=userList[i]; 
    break; 
    } 
    } 

    if (status==true){ 
    location.href="EditProfile.html"; 
    } 

}

関連する問題