2016-12-15 88 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,真的很感激它 –