【发布时间】:2018-03-15 19:54:18
【问题描述】:
当有人进入网站时,我希望他们看不到某些元素,但是当用户输入 pass 和用户名 admin 时,我希望他显示 newprojection 元素。它可以工作,但是当我刷新页面时它就消失了。我在这里尝试了网络存储,但页面刷新后它仍然消失了。
document.getElementById('newprojection').style.display = "none";
document.getElementById('buyticket').style.display = "none";
document.getElementById('newuser').style.display = "none";
function validate() {
localStorage.setItem('test', boom);
var boom = document.getElementById('newprojection').style.display = '';
var username = document.getElementById("username").value;
var password = document.getElementById("password").value;
if (username == 'admin' && password == 'admin') {
localStorage.getItem(test);
}
}
<header>
<div class="container">
<div id="branding">
<h1><span id="logo">mov</span>BLANK</h1>
</div>
<nav>
<ul>
<li><a href="../index.html">Home</a></li>
<li><a id="newprojection" href="newprojection.html">New projection</a></li>
<li><a id="buyticket" href="buyticket.html">Buy a ticket</a></li>
<li><a id="newuser" href="newuser.html">New user</a></li>
<li class="current"><a id="login" href="login.html">Log in</a></li>
<li>
<a id="nameofuser" href="#"></a>
</li>
</ul>
</nav>
</div>
</header>
<div class="container">
<form>
<p>Username</p>
<input id="username" type="text" name="username" required>
<p>Password</p>
<input id="password" type="password" name="password" required>
<a type="submit" id="login2" onclick="validate()">Login</a>
</form>
</div>
【问题讨论】:
-
不确定你想在这里实现什么......你想要那个,如果用户输入'admin'/'admin'他们可以看到隐藏的元素,即使他们刷新页面?我的意思是,一旦你“登录”,你就会永远登录(或者至少直到 localStorage 被清空)?
-
是的,这就是我的意思,我不使用和后端,这只是前端,我想做就像你说的那样,如果他们输入 admin/admin 他们可以看到隐藏的元素以及何时我将页面重定向到 index.html,他们仍然可以看到该元素,但是一旦我刷新或重定向到 index.html,它就不会再次隐藏,并且本地存储应该可以工作但它没有,我的意思是它没有保存在 localstorage如果是的话,即使我刷新页面,它也会显示隐藏的元素。
-
localStorage.getItem(test);只是检索值。您必须对检索到的值做某事。 (此外,您还试图在定义boom之前将其设置为空字符串...) -
附带说明,这种事情根本不安全,任何加载页面的人都可以查看源代码并找出用户名/密码是什么。它会阻止那些技术文盲或懒惰的人,但任何想要并拥有一盎司技术技能的人都可以看到他们。
-
是的,我知道,我现在不知道php或node,但我会学习它,现在它只是一个大学项目,谢谢你的建议:D
标签: javascript html web-storage