1. 程式人生 > >php中cookie和session的區別與簡易用法

php中cookie和session的區別與簡易用法

php cookie session

一、區別
1、Cookie是完全保存在客戶端。當客戶端禁止cookie時將不能再使用;對服務端壓力較小;可以指定生存周期;安全性差。
2、Session是存放在服務端的。但session id是存放在客戶端的cookie中的,但php的session存放方法是多樣化的,這樣就算禁用cookie一樣可以跟蹤;服務端壓力較大;關閉瀏覽器後,session失效;安全性較好。
二、cookie
1、設置。

    Setcookie(string name, string value, int expire,string path, string domain, int secure)

    name是cookie變量名稱標識(必須),
    value是cookie變量的初始值(必須),
    expire 表示該cookie變量的有效時間(時間點,為空時cookie不會保存到客戶端,當瀏覽器關閉,cookie會失效),
    path 為該cookie變量的相關路徑,
    domain 表示cookie變量的網站,在此域名內cookie有效,
    secure 則需在 https 的安全傳輸時才有效。 
    例:SetCookie("name", "value",time()+3600, "/test", ".test.com", 1)

2、讀取。echo $_COOKIE["cookiename"];類似與POST和GET。

3、刪除 。SetCookie("cookiename", "")或SetCookie("cookiename", "value" , time()-1);

註:
1、必須在HTML文件的內容輸出之前設置;
2、不同的瀏覽器對Cookie的處理不一致;
3、一個瀏覽器能創建的Cookie數量最多為30個,並且每個不能超過4KB,每個WEB站點能設置的Cookie總數不能超過20個(未驗證);
4、首次訪問頁面時設置cookie,第二次訪問時才能讀取cookie值,因為cookie是保存在客戶端,需由客戶端傳至服務端才能讀取。
解決方法:設置cookie後,echo "<script>location.href=‘當前頁面‘</script>";

三、Session的配置

1、session_start();                    //初始化session.需在文件頭部

2、$_SESSION[name]=value;  //配置Seeeion

3、echo $_SESSION[name];    //使用session

4、isset($_SESSION[name]);   // 判斷

5、unset($_SESSION[name]);   //刪除

6、session_destroy();             //刪除所有session

php中cookie和session的區別與簡易用法