我的项目由2个html页面组成:
index.html
,其中包含登录信息和注册表单。user_logged.html
,其中包含已登录用户的所有功能。现在,我想要做的是控制用户是否真的登录,以避免用户在浏览器中粘贴网址并可以看到其他用户的网页。 如果用户在浏览器中粘贴此网址,则为现在的小时数:
www.user_loggato.html?user=x#profile
好像以用户x身份登录,这不太好。
我的html页面都使用包含脚本的js文件。 我决定创建一个名为logged inizialized为false的全局变量,并在登录成功时将变量更改为true。
问题是该变量仍为假。
这是代码:
var logged=false; (write in the file a.js)
在文件b.js中我有:
function login() {
//if succesfull
logged=true;
window.location.href = "user_loggato.html?user="+ JSON.parse(str).username + #profilo";
现在有了一些警报我发现记录的变量总是假的。为什么呢?
答案 0 :(得分:2)
Javascript不是可行的方式,因为它在客户端运行。即使有办法在不同的请求之间共享javascript变量,用户也可以操纵它们。
你必须采用服务器端技术(可能是带有会话的PHP)。
答案 1 :(得分:0)
JS变量将在每次提交/刷新时重置。您可以使用sessionStorage或cookie来实现此目的。例如:
将此信息放入您的登录表单中:
function login() {
window.sessionStorage[logged] = true;
window.location.href = "user_loggato.html?user="+ JSON.parse(str).username + #profilo";
}
在您的user_loggato.html中,您可以按以下方式对其进行检索:
function getLoginStatus() {
return window.sessionStorage['logged'];
}
希望这有帮助。