PHP-cookie

一、cookie介紹

1、存儲在瀏覽器客戶端的一小片數據(瀏覽器創建了cookie)
2、可以同時被前臺與后臺操作(前后臺共享)
3、可以跨頁面存取
4、不可跨服務器訪問,可以在子域中跨域。
5、cookie是有生命期的,默認是與瀏覽器進程相同,如果進程退出,cookie會被銷毀
6、cookie除了值,其余屬性是只寫。
7、cookie存儲有限制
     瀏覽下的cookie數不能超過 300 個
     每個服務器不能超過 20 個
     所有cookie包含他們屬性占據的數據大小不能超過 4k
8、cookie不安全,可以被客戶端更改。因此不要用cookie存儲重要或者敏感數據。

二、cookie優缺點

優點:將信息存儲在用戶硬盤,可以可以作為全局變量,可以跨域。
缺點:隱私性差
    cookie與瀏覽器相關,不同瀏覽器訪問同一個頁面,其cookie不能相互訪問
    cookie是硬盤上一個文件,可能被用戶刪除
    cookie是以純文本形式記錄在文件中,安全性不高(需加密)

三、cookie在HTML頁面

特點:以鍵值對形式存儲,用分號分隔每個cookie(字符串)

1、創建cookie

document.cookie = "user=caogl; path=/";

path:cookie的服務器路徑
    / :全棧訪問
    /seven/front(絕對路徑) :只在front目錄下生效,包含其子目錄; expires:設定cookie的生命周期,值是一個字符串,需要把過期日期轉變成字符串toGMTString()

2、獲取所有cookie

str = document.cookie;

3、對cookie設置過期時間

// 設置一天后失效
  var _data = new Date();
  _data.setDate(_date.getDate() + 1);  // getDate() 天
  var expires_str = _date.toGMTString();    //  expires:過期  toGMTString:把date轉為字符串并返回結果
  document.cookie = "user=caogl2; path=/;expires="+expires_str;

設置一個有過期時間的cookie,可以分裝成函數:

function setCookieFn(name,value,path,expires){
    // 設置一天后失效
    var current_date = new Date();
    current_data.setDate(current_date.getDate() + expires);
    //將日期轉換成字符串
    expires_str = current_date.toGMTString();
    //設置cookie 的過期日期
    document.cookie = name +"="+ value +"; path ="+path+"; expires"+ expires_str ;
}

三、獲取cookie的某個鍵的鍵值

 var start = str.indexOf("user=") + 5;  // user= 后面的值的下標 + 5
 var end = str.indexOf(";",start)       // 查start后面的;的下標
 val = var.substring(start,end);        // 找start開始,end結束的字符串

可以封裝成函數:

function getcookieFn(name){
  var str = document.cookie;
  var start = str.indexOf(name + "=") + name.length + 1;
  var end = str.indexOf(";",start);
  end == -1 : str.length : end;
  var  val = str.substring(start,end);
  return val;
}

四、cookie在PHP頁面

1、PHP:將所有的cookie存儲在 $_COOKIE 數組里

print_r($_COOKIE);

2、創建cookie

cookie 在第二次請求時生效,當前頁不生效。生成后刷新一下頁面生效。

  setcookie("num",1);
  echo $_COOKIE['num']; 

3、獲取cookie的值

if(!empty($_COOKIE('num'))){
    $_COOKIE['num'] ++;
    setcookie('num',$_COOKIE['num']);
    echo $_COOKIE['num'];
}else{
    setcookie('num',1);
    echo $_COOKIE['num'];
}        

4、設一個過期時間的 cookie

時間為時間戳,比如一天后失效:24*3600秒后失效
time(): 當前獲取的時間(毫秒)

setcookie('add',233,time()+24*3600);
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Cookie是存儲在客戶端瀏覽器中的數據,我們通過Cookie來跟蹤與存儲用戶數據。一般情況下,Cookie通過H...
    敬業福閱讀 907評論 0 1
  • 作用:常用于識別用戶。 簡介:cookie常用于識別用戶。cookie是服務器留在用戶計算機中的小文件。每當相同的...
    廖馬兒閱讀 910評論 0 2
  • cookie的特點 cookie是存儲在瀏覽器客戶端的一小斷數據 cookie可以同時被前臺后臺操作,cookie...
    Farewell_V587閱讀 268評論 1 1
  • Cookie 是什么? cookie 常用于識別用戶。cookie 是一種服務器留在用戶計算機上的小文件。每當同一...
    雨聲不吃魚閱讀 187評論 0 1
  • 什么是 Cookie? cookie 常用于識別用戶。cookie 是服務器留在用戶計算機中的小文件。每當相同的計...
    George2016閱讀 190評論 0 0