0

我的项目由 2 个 html 页面组成:

  1. index.html,其中包含登录名和注册表单。
  2. user_logged.html,其中包含登录用户的所有功能。

现在,我要做的是控制用户是否真的登录,以避免用户在浏览器中粘贴 url 并可以看到另一个用户的页面的情况。几个小时后,如果用户将此网址粘贴到浏览器中:

 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";

现在有了一些警报,我发现我的变量记录总是错误的。为什么?

4

2 回答 2

2

Javascript 不是要走的路,因为它在客户端运行。即使有办法在不同请求之间共享 javascript 变量,用户也可以操纵它们。

您必须为此采用服务器端技术(可能是带有会话的 PHP)。

于 2012-12-09T11:09:43.727 回答
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'];
}

希望这可以帮助。

于 2012-12-09T11:13:31.353 回答