2016-12-15 87 views
2

基本上我有2個文件... register.html和login.js ....我能夠將用戶的註冊詳細信息存儲到本地存儲,然後將其解析爲陣列中的對象....我需要正確登錄(當用戶和通過匹配,警告框表示登錄成功,然後PHP文件將重定向用戶,如果不匹配,警報框將單獨指示),然後是第二個警報框,因爲您已成功登錄,然後它不會重定向我作爲PHP文件是爲了這樣做,當用戶和通過匹配本地存儲...任何線索?如何解決我的登錄問題與本地存儲?

+0

你可以檢查這個鏈接http://stackoverflow.com/a/38328193/6572922 –

+0

對不起,我不是在那個水平,我可以區分差異和比較我的代碼與我的差異...我只需要支持改變我的代碼,以允許它正確登錄 –

回答

1

你只是沒有通過憑證正確迭代,你必須等到你確定當前的登錄憑證不等於任何存儲的憑證,那麼你必須從for循環中取出這部分代碼:

alert('Invalid Username or Password! Please try again.'); 
event.preventDefault(); 
window.location="Login.html"; 

試試這個代碼驗證的登錄:

function validlogin(event) { 
    var username = document.getElementById('username').value; 
    var password = document.getElementById('password').value; 
var entriesJSON = localStorage.getItem('allEntries'); 
if (!entriesJSON) { 
    event.preventDefault(); 
    alert("Nothing stored!"); 
    return; 
} 
var allEntries = JSON.parse(entriesJSON); 
var isCorrectCredentials=false; 
for (var i = 0; i < allEntries.length; i++) { 
    var entry = allEntries[i]; 
    var storedUserName = entry.user; 
    var storedPassWord = entry.pass; 

    var storedEmailAddress = entry.email; 
    if (username == storedUserName && password == storedPassWord) { 
     isCorrectCredentials=true; 
     alert("Successfully logged in!"); 
     return; 
    } } 
    if(!isCorrectCredentials){ 
     alert('Invalid Username or Password! Please try again.'); 
     event.preventDefault(); 
     window.location="Login.html";  
    } 
} 

這樣,如果當前用戶名和密碼是否正確使用,您將登錄並通知其他代碼:

isCorrectCredentials=true; 

登錄信息爲真,並且您已成功登錄。 以及如果登錄信息不爲真時應執行的代碼部分將被執行最多1次。

+0

哇它的工作,你可以簡要地解釋什麼,你必須做出這項工作,順便說一句...... Shokran :) –

+2

我將編輯答案來解釋什麼是錯誤! ,3afwan;) –

+0

謝謝habibi,真的很感激它 –