Я думаю, что лучшим решением было бы назвать эту функцию только с тех страниц, которые вы хотите перенаправить на логин, и, как говорит Эмада Мелад, за пределами страницы 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
.
Надеюсь, он может вам помочь!
* localStorage.login = "true" & "false" было назначено с сервера динамически *. Невозможно установить localStorage с сервера. Вам нужно больше информации о том, как вы устанавливаете это значение. – dfsq