用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>