javascript-登录并选中复选框后记住用户数据

javascript-登录并选中复选框后记住用户数据,javascript,forms,checkbox,login,Javascript,Forms,Checkbox,Login,我正在帮助开发一个客户网站的改进。其中一个改进是登录表单。我想添加一个复选框,当用户在选中此复选框后登录时,它会记住他的登录数据 我拥有的登录表单: <form id='formLogin' method='post' name='formLogin'> <!-- action="telaInicial"> --> <label for="usuario">{label_index_user}</label><input

我正在帮助开发一个客户网站的改进。其中一个改进是登录表单。我想添加一个复选框,当用户在选中此复选框后登录时,它会记住他的登录数据

我拥有的登录表单:

<form id='formLogin' method='post' name='formLogin'> <!-- action="telaInicial"> -->
        <label for="usuario">{label_index_user}</label><input name="usuario" id="usuario" type="text" /><br />
        <label for="senha">{label_index_password}</label><input name="senha" id="senha" type="password" maxlength="8" /><br />
        <div id="btLogin"><input type='button' id='entrar' value="{label_index_enviar}"/></div>
        <div id="btLogout"><input type='button' id='deslogar' value="{label_index_sair}"/></div>
        <br><div id="checkLembraDados"><input type='checkbox' id='lembrar' />{label_index_lembrardados}</div>
        <a id="esqueciSenha" href='#' >{label_index_esquecisenha}</a>
    </form>
我不知道我是否在这个问题上讲清楚了。但我认为它可以很简单地放在页面上


谢谢您的帮助。

您是否使用JS连接和查询数据库?? 通常情况下,您会设置一些内容来破坏会话。。要让他登录,不要破坏它。。。简单

e、 g。 在php中:

破坏会话。。。你可以做:

if(keep_logged) #the person checked the stay logged in box
{
  $_SESSION['stayalive']=true;
}
会话终止符:

if($_SESSION['keepalive'] == false && inactive_time > 1hour) session_destroy();
问题是你必须终止会话并销毁它们。。这是在注销页面中设置的。。但如果他不注销浏览器会发生什么?在服务器配置中设置cookie过期之前,您一直保持登录状态


因此,开发人员要做的是设置一个函数,该函数将检查最后一个操作的时间和当前操作的时间,并查看差异。。有些人将会话的最小不活动时间设置为1小时。。有些多,有些少。。。您只需要设置一个旁路条件,我建议您使用javascript的本地存储或cookie

本地存储 通过本地存储,web应用程序可以在用户浏览器中本地存储数据

在HTML5之前,应用程序数据必须存储在cookie中,包括在每个服务器请求中。本地存储更安全,大量数据可以在本地存储,而不会影响网站性能

与Cookie不同,存储限制要大得多至少5MB,而且信息永远不会传输到服务器

本地存储是按域分配的。来自一个域的所有页面都可以存储和访问相同的数据

链接以帮助您开始:

曲奇饼 Cookie是存储在计算机上的小文本文件中的数据

当web服务器将网页发送到浏览器时,连接将关闭,服务器将忘记用户的所有信息

发明Cookies是为了解决如何记住用户信息的问题:

当用户访问网页时,他的名字可以存储在cookie中。 下次用户访问页面时,cookie会记住他的名字


帮助您入门的链接:

首先,我认为您需要清除此代码。为此,您首先需要将jquery库添加到html代码中

$("#lembrar").click(function() {
    if($(this).is(":checked")){
        // CODE FOR REMEMBERING DATA FOR FUTURE LOGINS
    }
});
现在,为了在客户端存储用户数据,您可以使用2个javascript函数

// cname  - name in which you want to store your user data
// cvalue - value of that userdata
// exdays - expire in how much days
// ex: setCookie('user','jay',1)
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

// cname - name in which you store your user value
// ex : getCookie('user')  -->  'jay' as output
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}

注意:通过cookies存储用户数据取决于浏览器。如果用户手动删除浏览器的所有cookies,则没有有效期的含义。

在类似问题中发现此代码。我已经复制到我的JS文件进行测试:$login.submitfunction{if$'memory'.is':选中“{var email=$'email.val;var pass=$'pass.val;$.cookie'email',email,{expires:14};$.cookie'pass',pass,{expires:14};$.cookie'memory',true,{expires:14};}else{$.cookie'email',null;$.cookie'pass',null;$.cookie'memory',null;};};
$("#lembrar").click(function() {
    if($(this).is(":checked")){
        // CODE FOR REMEMBERING DATA FOR FUTURE LOGINS
    }
});
// cname  - name in which you want to store your user data
// cvalue - value of that userdata
// exdays - expire in how much days
// ex: setCookie('user','jay',1)
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

// cname - name in which you store your user value
// ex : getCookie('user')  -->  'jay' as output
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
    }
    return "";
}