1. 程式人生 > >COOKIE基礎與應用

COOKIE基礎與應用

什麼是cookie

  • 頁面用來儲存資訊(自動登陸、記住使用者名稱)
  • cookie的特性:
  •          同一個網站中所有頁面共享一套cookie
  •          數量、大小有限(4-10k)
  •          過期時間
  • js中使用cookie
  •          document.cookie

使用cookie

  • cookie的使用
  •      設定cookie
  •             格式:名字=值
  •             不會覆蓋(但是同名會覆蓋)
  •             過期時間:expries=時間
  •                    日期物件的使用
  •             封裝函式
  •     讀取cookie
  •             字串分割
  •     刪除cookie
  •            已經過期

在cookie中,=是新增


<script>
    document.cookie='user=blue';
    document.cookie='pass=123456';

    alert(document.cookie)
</script>

 如果把cookie刪除了。alert(document.cookie),彈出的為空。那是因為cookie有過期時間。

<script>
    var oDate=new Date();

    oDate.setDate(oDate.getDate()+8)//用這種方法計算幾天以後的日期
    document.cookie='user=blue;expires='+oDate;
   // alert(oDate.getFullYear()+'-'+(oDate.getMonth()+1)+'-'+oDate.getDate());
    alert(document.cookie)
</script>

//即使註釋 document.cookie='user=blue;expires='+oDate;也還是有user

設定cookie,封裝成函式:

<script>
    function setCookie(name,value,iDay){
        var oDate=new Date();
        oDate.setDate(oDate.getDate()+iDay);
        document.cookie=name+'='+value+';expires='+oDate;
    }
    setCookie('userName','dancingblue',365);
    setCookie('password','123456',14);
</script>
<script>
    function setCookie(name,value,iDay){
        var oDate=new Date();
        oDate.setDate(oDate.getDate()+iDay);
        document.cookie=name+'='+value+';expires='+oDate;
    }

    function getCookie(name){
        var arr=document.cookie.split('; ');
        for(var i=0;i<arr.length;i++){
            var arr2=arr[i].split('=');
            if(arr2[0]==name){
                return arr2[1];
            }
        }
        return '';//如果什麼也沒找到也就是第一次,就返回''
    }
    alert(getCookie('password'));
</script>

刪除cookie

function removeCookie(name){
        setCookie(name,1,-1);//cookie在-1以後消失
 }
<script>
    function setCookie(name,value,iDay){
        var oDate=new Date();
        oDate.setDate(oDate.getDate()+iDay);
        document.cookie=name+'='+value+';expires='+oDate;
    }

    function getCookie(name){
        var arr=document.cookie.split('; ');
        for(var i=0;i<arr.length;i++){
            var arr2=arr[i].split('=');
            if(arr2[0]==name){
                return arr2[1];
            }
        }
        return '';//如果什麼也沒找到也就是第一次,就返回''
    }

    function removeCookie(name){
        setCookie(name,1,-1);//cookie在-1以後消失
    }
    removeCookie('userName');
    alert(document.cookie);
</script>

用cookie記錄上次登陸的使用者名稱和密碼。

<script>

        function setCookie(name,value,iDay){
            var oDate=new Date();
            oDate.setDate(oDate.getDate()+iDay);
            document.cookie=name+'='+value+';expires='+oDate;
        }

        function getCookie(name){
            var arr=document.cookie.split('; ');
            for(var i=0;i<arr.length;i++){
                var arr2=arr[i].split('=');
                if(arr2[0]==name){
                    return arr2[1];
                }
            }
            return '';//如果什麼也沒找到也就是第一次,就返回''
        }

        function removeCookie(name){
            setCookie(name,1,-1);//cookie在-1以後消失
        }
        //window.onloa時讀取資料
        window.onload=function(){
            var oForm=document.getElementById('form1');
            var oUser=document.getElementsByName('user')[0];
            oForm.onsubmit=function(){
                setCookie('user',oUser.value,14);
            }
            oUser.value=getCookie('user');
        }
    </script>
</head>
<body>
<form action="http://www.zhinengshe.com/" id="form1">
    使用者名稱: <input type="text" name="user"/> <br/>
    密  碼: <input type="password" name="pass"/> <br/>
    <input type="submit" value="登陸"/>
</form>
</body>