SESSION與COOKIE區(qū)別: 
  Session 將信息保存在服務(wù)器上.服務(wù)器在接受到唯一的SESSION_ID后,根據(jù)這個ID獲取相關(guān)數(shù)據(jù),然后將信息傳遞到客戶端(瀏覽器). 
  Cookie 是將所有信息以文本的形式存在本地文件,并由客戶端(瀏覽器)進(jìn)行管理與維護(hù). 
因?yàn)镾ession 數(shù)據(jù)存儲在server端,所以遠(yuǎn)程client無法對數(shù)據(jù)進(jìn)行修改;而Cookie存儲在client本地,容易被獲取和篡改.所以Session安全性較高. 
SESSION 介紹: 
  PHP5 后session被設(shè)置為全局變量,可以通過 $_SESSION[session_id] 來獲取.當(dāng)頁面啟動SESSION會話,會在服務(wù)器中生成一個帶唯一id的SESSION,這個SESSION在生命周期結(jié)束前一直有效.當(dāng)關(guān)閉網(wǎng)頁或結(jié)束生命周期后,session會在服務(wù)器中自動注銷. 
創(chuàng)建一個session 會話需要經(jīng)過一下4個步驟: 
  a)啟動會話.. 
    方法有2種: bool session_star(); boolean session_register(string name); 
  b)注冊回話. 
    會話變量被啟動后,全部保全在$_SESSION數(shù)組當(dāng)中.通過數(shù)組$_SESSION創(chuàng)建一個會話變量很簡單,只需要給該數(shù)組添加一個變量即可. 
  c)使用會話: 
    一般操作:判斷對應(yīng)session_id的SESSION是否存在.不存在創(chuàng)建一個,存在 則通過 $_SESSION[session_id] 使用. 
  d)刪除會話. 
unset($_SESSION[session_id]);//刪除單個. 
    unset([$_SESSION]);//刪除整個,將禁止整個會話功能,切無法恢復(fù). 
   $__SESSION=array();//刪除整個,可恢復(fù). 
   session_destroy();//結(jié)束當(dāng)前會話.. 
SESSION的生命周期: 
  1.控制session 生命周期的方法: 
   一. 前提條件:客戶端支持COOKIE! 
    方法: 
      a>通過Session來完成. 
         void session_set_cookie_params(int lifetime[,string path][,string domain][,bool secure]); 
         bool setcookie(string name [,string value] [,int expire] [,string path] [,sting domain] [,secure]); 
      b>通過Cookie 來完成. 
二. 前提條件:客戶端不支持COOKIE! 
     一旦客戶端不支持cookie,SESSION就不能在頁面間傳遞,解決辦法: 
     a>.在登陸前提示用戶打開cookie. 
     b>.表單POST/GET方式,來傳遞SESSION_ID. 
     c>.設(shè)置php.ini文件中的session.use_trans_sid=1 或編譯時打開-enable-trans-sid; 
     d>.通過文件或數(shù)據(jù)庫方式傳遞SESSION_ID; 
服務(wù)器上對SESSION性能優(yōu)化: 
  在服務(wù)器中,如果將所有用戶的session都保存到臨時目錄中,會降低服務(wù)器的安全性與效率. 
  解決方法:將SESSION存儲到服務(wù)器上的數(shù)據(jù)庫或者臨時文件中. 
  臨時文件: 
    string session_save_path(string path); 
  數(shù)據(jù)庫: 
    session 存儲在臨時文件時,當(dāng)網(wǎng)站瀏覽量很大的時候,將會導(dǎo)致查詢Session的效率很低,推薦數(shù)據(jù)庫存儲形式. 
    bool session_set_save_handler(string open,string close,string read,string write,string destroy,string gc);//將session_id 存儲與數(shù)據(jù)庫中的函數(shù). 
SESSION 緩存: 
  緩存即將頁面中的某些信息存儲到客戶端指定的文件夾中,且可以設(shè)置一定的有效時間.(已經(jīng)經(jīng)過第一次訪問,且存儲)在這個有效時間內(nèi),當(dāng)再次訪問頁面,則可直接從緩存中讀取內(nèi)容,從而提高頁面瀏覽效率. 
  string session_cache_limiter(string cache_limiter); //緩存函數(shù). 
  int session_cache_expire([int new cache_expire]); //有效時間. 
COOKIE介紹: 
  cookie 是一種遠(yuǎn)程客戶端存儲數(shù)據(jù)和跟蹤識別用戶的機(jī)制.是服務(wù)器臨時存放數(shù)據(jù)在本地用戶的一個文本文件.文本文件格式:"用戶名@網(wǎng)站地址[數(shù)字].txt" 
COOKIE 常見功能: 
  a)記錄訪客的某些信息. b)在頁面間傳遞變量; c)將頁面內(nèi)容存儲到cookie中提高下次訪問速度. 
慎用COOKIE: 
  a)不是所有的瀏覽器都支持cookie. 
  b)數(shù)據(jù)是以明文的方式保存在本地,不適合敏感的信息,未加密的信息. 
  c)不同類型瀏覽器對cookie 文件有大小,個數(shù)限制:比如最多只能存300個cookie 文件,每個大小不超過4KB,每個域名最多支持20個cookie文件.如果超過顯示,會隨機(jī)刪除. 
創(chuàng)建COOKIE: 
  bool setcookie(string name [,string value] [,int expire] [,string path] [,sting domain] [,secure]); 
讀取COOKIE: 
  $_COOKIE[]; 
刪除COOKIE: 
  a). setcookie("id", "",time()-1);//值為空,有效時間小于當(dāng)前時間.0為直接刪除COOKIE. 
  b).手動刪除.在客戶端找到臨時存放cookie的文件. 
setcookie()函數(shù)后,要執(zhí)行刷新,cookie才能取得數(shù)據(jù): 
  個人理解是因?yàn)閟ession 跟cookie都是在client 跟server之間傳輸,在頁面顯示前,我們就必須獲取到相應(yīng)的數(shù)據(jù).所以一般是在獲取 http:// 或https://時必須帶上session 或cookie..當(dāng)在執(zhí)行setcookie()時,僅僅在本地存儲了cookie 但是地址上并沒有帶上cookie..因而需要刷新,讓服務(wù)器給地址協(xié)議帶上cookie發(fā)送個客戶端,這樣才能取得到值.. 
  正是以上session_star(),setcookie()前,html頁面不能有輸出...所以說cookie 或者session認(rèn)第一,就沒人敢認(rèn)第二.