cookie记住用户登录信息

用cookie记住用户登录信息(不太重要的信息)

cookie是在客户端保存状态的,可以这样说,服务器提前在浏览器中放了一个cookie,用来记录一些信息,这些信息通常都是放在计算机硬盘里,当用户通过浏览器访问一些需要登录信息的网站,如果用户初次登陆注册时填入信息时,这时cookie就把信息记录下来了,当下次再访问此网站时,浏览器向服务器发送请求,服务器就会从他之前放在浏览器的cookie里找到用户登录信息及打开过的哪些页面,而直接响应用户返回其需要的页面,因为这些信息在计算机硬盘里存着,所以当用户在浏览器打开页面时会节省很多时间,但是cookie安全性能不太好,通常用来保存一些不太重要的信息。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
    /*创建cookie*/
        function setCookie(c_name,c_value,expiredays){//参数分别是cookie的名称,值及过期天数
            var exdate=new Date();
            exdate.setDate(exdate.getDate()+expiredays);//设置几号到期,setDate()是设置一个月的某一天。譬如:今天是6号+过天数3,那么过期那天就是9号
            document.cookie=c_name+"="+decodeURI(c_value)+((expiredays==null)?"":";expiredays="+exdate.toUTCString());//decodeURI()把值转换为计算机能够识别的代码(cookie要求要用url编码);toUTCString()把时间转换为UTC标准时间

//这个cookie存的结果其实就是c_name=c_value;expiredays=过期日期
        }
        function getCookie(c_name){
        //判断cookie是否存在
            if(document.cookie.length>0){
                var c_start=document.cookie.indexOf(c_name);//存在,检索c_name首次出现的位置
                if(c_start!=-1){//如果检索到c_name为空,就会返回-1,如果不等于-1,则说明c_name存在
                    c_start=c_start+c_name.length+1;//这里是c_name 值的首位置
                    var c_end=document.cookie.indexOf(";",c_start);//检索“;”出现的位置,从c_start起开始检索
                    if(c_end==-1)c_end=document.cookie.length;//如果没有检索到“;”那最后就等于cookie的长度
                    return decodeURIComponent(document.cookie.substring(c_start,c_end));//获得c_name,并进行解码
                }
            }
            return "";//如果cookie不存在就返回空
        }

        //检测cookie,如果有就弹出欢迎页面,如果没有就弹出提示框,让用户输入信息
        function checkCookie(){
            var username=getCookie('username');
            if(username!=null&&username!=""){
                alert("welcome again "+username)
            }else{
                 username=prompt("please enter your name ","");//prompt提示框,当点取消按钮时,会返回null;当提示栏里什么都不填,点击确认框时会返回"";
                if(username!=null&&username!=""){
                    setCookie("username",username,15)//设置cookie
                }
            }
        }
    </script>

</head>
<body onload="checkCookie()">

</body>
</html>
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 表单的"记住我"功能可以通过操作cookie来实现。当用户勾选了"记住我"选项后,可以使用JavaScript来设置一个持久性的cookie,以便在用户下次访问网站时自动填充表单。具体实现步骤如下: 1. 在用户登录时,检查是否勾选了"记住我"选项。如果勾选了,获取用户名和密码,并使用JavaScript设置一个持久性的cookie。 2. 使用JavaScript的document.cookie属性来设置cookie。例如,可以使用以下代码设置一个名为"username"的cookie,并将用户名作为cookie的值: ```javascript document.cookie = "username=" + username + "; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/"; ``` 这里的expires参数指定了cookie的过期时间,设置为一个未来的日期,使得cookie能够长期保存。path参数指定了cookie的路径,使得cookie在整个网站范围内都可用。 3. 当用户下次访问网站时,可以通过JavaScript读取cookie,并将保存的用户名填充到表单中。 ```javascript var username = getCookie("username"); if (username !== "") { document.getElementById("username").value = username; } ``` 这里的getCookie函数是一个自定义的函数,用于获取指定名称的cookie的值。 需要注意的是,由于cookie是保存在用户本地计算机上的,存在安全隐患,因此不建议将敏感信息存储在cookie中。在实际应用中,应该仅将一些不敏感的信息,如用户名,保存在cookie中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值