使用Cookie实现七天免登录

  • Post author:
  • Post category:其他



实现效果:


用户打开页面,输入用户名和密码后点击登录,如果不勾选“七天免登录”框,则浏览器不会保存用户数据,反之则会保存用户数据,再次刷新之后浏览器会自动写入用户名以及密码。



HTML布局:

<body>
    用户名:<input type="text" / id="dx"><br>
    密码:<input type="password" / id="pas"><br>
    7天免登录<input type="checkbox" id="mdl">
    <button id="tj">提交</button>
</body>

在开始写功能之前,要记得引入封装好的Cookie文件,方便设置以及调用Cookie。

<script src="functions.js"></script>

开始写功能



JS部分:



准备工作:一个简单的Cookie封装:

// 封装Cookie
    //   封装三个函数
    //   setCookie()  -- 创建 Cookie
    //   getCookie()  -- 获取 Cookie
    //   removeCookie() -- 删除 Cookie
function setCookie(name,value,iDay){  //分别代表cookie名称、cookie值、存储时间
        //首先将cookie的格式拼出来
        //document.cookie="name=value;expires=date";
        //然后name就换为name,vlaue就换为value,至于date就要算出这个日期对象
    var oDate=new Date();
    oDate.setDate(oDate.getDate()+iDay);
    document.cookie=name+"="+value+"; expires="+oDate;
}
    //a=12; b=5; c=8; d=99
function getCookie(name){
        //1、先给cookie做一下字符串分割,
    var arr=document.cookie.split("; ");//分割后变为数组,a=12 b=5 c=8 d=99
        //2、循环数组
    for(var i=0;i<arr.length;i++){
        var arr2=arr[i].split("=");  //根据“=”再次分割
            //arr2[0]——》存储的名称 abcd
            //arr2[1]——》存储的值 12 5 8 99
        if(arr2[0]==name){  //代表找到我想要的东西了
            return arr2[1];
        }
    }
        //另一种可能,用户第一次来网站,还没有cookie,所以肯定什么也找不到。所以在循环一次后就直接return 一个字符串,告诉用户什么也没找到。
        return "";
}
function removeCookie(name){
    //name名称,再随便来个值1,后面的才是重点-1,时间过期了,所以就成为了负值
    setCookie(name,1,-1);
 }
}

首先要判断当前页面用户有没有保存过Cookie。

如果保存过,则把已经保存好的Cookie写入对应的用户名以及密码框。

如果没有保存过,则写入一个空字符串。

if(getCookie("pas")&&getCookie("name")){ //判断页面是否有对应Cookie
    dx.value=getCookie("name");             //有则写入
    pas.value=getCookie("pas");
}else{
    dx.value="";                            //无则写空
    pas.value="";
}

判断之后,就该给登陆按钮增加点击事件。

这里是根据用户是否选中“七天免登录”,来决定是否存储用户的数据。

tj.onclick=function(){
    if(mdl.checked){                       //判断多选框是否选中
        setCookie("name",dx.value,7);       //如选中则添加Cookie,添加内容为用户输入的密码和用户名
        setCookie("pas",pas.value,7);
    }else{
        removeCookie("name");   //如没选中,则删除掉对应的Cookie
        removeCookie("pas");
    }
}

写到这里,一个简单的七天免登录就做好了。

人生第一篇博客,心情复杂。欢迎大家指出错误,笔芯。



版权声明:本文为var_Xu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。