前 言數組
cookie $ session
瀏覽器Cookie&Session是經常使用的會話跟蹤技術,兩者都能記錄狀態,前者是將狀態數據保存在客戶端,後者則保存在服務端。服務器
下面簡單介紹一下Cookie和Session的內容以及使用方法,並無關於區別之類的詳解cookie
1 Cookie |
設置cookie
參數 ① cookie的name
② 須要存到cookie的值
③ cookie的有效期,須要是UNIX時間戳,可使用time()函數得到。單位爲秒
④ cookie的有效路徑,默認只在當前目錄有效。設置"/"表示全部目錄有效
當設置"/"將cookie保存到全局時,須要注意本目錄下是否有同名cookie,二者並不會回想覆蓋;
好比下面兩行代碼同時執行,會在當前目錄和全局各生成一個cookie,二者不會代替
在當前目錄讀取cookie時,會優先讀取本目錄下的cookie
讀取cookiesession
超全局數組$_cookie
刪除cookie:
① 設置 一個同名cookie,時間爲過時;
② 省略setcookie()函數的全部參數,只保留name即爲刪除操做函數
2 Session |
使用session必須先啓動session;
使用session_start()函數啓動session,注意這個函數以前不能有任何輸出語句,通常寫在文件最上方;
修改PHP.ini文件,設置session.auto_start = 1能夠啓動時初始化session。
可是,設置自動啓動後,將不能往session中存入對象, 由於對象須要在啓動以後才能產生。
在使用session後,會在cookie中保存一個鍵爲"PHPSESSID"的記錄,用於記錄session的惟一標記;
當瀏覽器關閉之後,sessionID默認失效
session的存值取值:
啓動session後,直接操做session全局數組便可
$_SESSION["user"] = "hehe"; 存值
echo $_SESSION["user"]; 取值
銷燬session的幾種方式:
①刪除session中的某一項:
unset($_SESSION["鍵名"]);
①清除session中所有數據:
$_SESSION=array();
③刪除服務器端保留session信息的文件
session_destroy();
兩個經常使用配置:
session.cookie_lifetime=0; 設置瀏覽器關閉時,保存SESSIONID的cookie文件就被刪除。也就是說瀏覽器一關閉,session就失效;
session.gc_maxlifetime;設置過時session時間,默認1440秒(24分鐘)。也就是說,即使是瀏覽器未關閉,在24分鐘沒有操做的狀況下,session也會過時。
spa