2015-02-20 5 views
3

Я написал код для входа в систему Использование JavaScriptкак использовать LocalStorage для входа в систему с помощью JavaScript

function checkLogin() 
{ 
    if(localStorage.login=="true") 
    { 
     window.location.href = "index.html"; 
    } 
    else if(localStorage.login=="false") 
    { 
     window.location.href = "login.html"; 
    } 
} 

где localStorage.login = «истинный» & «ложь» был назначен от сервера динамически

Страница get looply перенаправляется, когда я включаю этот код!

Дайте мне решения:

Как удалить/уничтожить определенную функцию пользователя после выполнения?

или

Как выполнить определенные пользователем функции для только один раз ondeviceready в JQuery

+1

* localStorage.login = "true" & "false" было назначено с сервера динамически *. Невозможно установить localStorage с сервера. Вам нужно больше информации о том, как вы устанавливаете это значение. – dfsq

ответ

1

Я думаю, что лучшим решением было бы назвать эту функцию только с тех страниц, которые вы хотите перенаправить на логин, и, как говорит Эмада Мелад, за пределами страницы login.html.

Если вы хотите, чтобы люди, которые снова перешли на страницу login.php, перенаправлялись на index.php, если они вошли в систему, вы можете попытаться определить, на какой странице вы находитесь, и сделать IF, так что если это страница входа в систему не выполняется. Было бы что-то вроде этого:

function checkLogin() 
{ 
    var url = window.location.pathname; 
    var filename = url.substring(url.lastIndexOf('/')+1) 

    if(localStorage.login=="true") 
    { 
     window.location.href = "index.html"; 
    } 
    else if(localStorage.login=="false" && filename != 'login.html') 
    { 
     window.location.href = "login.html"; 
    } 
} 

* The snippet code to get the actual URL

Однако, от того, что я прочитал в вашем коде, вы будете перенаправлены равно index.html из everypage, который вызывает эту функцию.

Как правило, то, что я делаю в своих приложениях, является проверка только в том случае, если он не вошел в систему и перенаправляет на login.html, если это так. То, что я хотел бы сделать, изменив немного вашей функции, является:

function checkLogin() 
    { 
     var url = window.location.pathname; 
     var filename = url.substring(url.lastIndexOf('/')+1) 

     if(localStorage.login=="true" && filename == 'login.html') 
     { 
      window.location.href = "index.html"; 
     } 
     else if(localStorage.login=="false" && filename != 'login.html') 
     { 
      window.location.href = "login.html"; 
     } 
    } 

Таким образом, вы будете только перенаправлены index.html, если вы вошли в систему, и вы в login.php, а другой, как вы будет перенаправлен только на login.html везде, если вы не вошли в систему, кроме login.html.

Надеюсь, он может вам помочь!

+1

Это работает !!! Огромное спасибо!!! – Sundaravel

+1

Рад, что я мог помочь! – Unapedra

2

Для набор LocalStorage объект:

localStorage.setItem('objName','objValue'); 

Чтобы получить объект LocalStorage:

localStorage.getItem('objName'); 
0

Невозможно установить LocalStorage с сервера. LocalStorage, расположенный в клиентском браузере. Я предполагаю, что ваш код зацикливается, потому что вы вызываете функцию checkLogin() после загрузки страницы входа. и потому, что localStorage пуст. эта строка кода будет выполняться

window.location.href = "login.html"; 

и страница загружается снова и снова проверить на LocalStorage и это пустая

Чтобы это исправить. , вы должны вызывать свою функцию вне страницы входа.

Смежные вопросы