一般Cookie會存在哪兒?
Chrome瀏覽器的Cookie檔案的存放路徑是:
C:\Users\你的用戶名\AppData\Local\Google\Chrome\User Data\Default\Cookies
Firefox瀏覽器的Cookies檔案存放路徑是:
C:\Users\你的用戶名\AppData\Roaming\Mozilla\Firefox\Profiles\xxx.default\cookies.sqlite 每個人可能略有不同
php中Cookie的功能和用途是什么?
最根本的用途是 Cookie 能夠幫助 Web 站點保存有關訪問者的資訊,
例如,購物站點上的 Web 服務器跟蹤每個購物者,以便站點能夠管理購物車和其他的用戶相關資訊,因此 Cookie 的作用就類似于名片,它提供了相關的標識資訊,可以幫助應用程式確定如何繼續執行,
使用 Cookie 能夠達到多種目的,所有這些目的都是為了使 Web 站點記住您,例如,一個實施民意測驗的站點可以簡單地利用 Cookie 作為布林值,表示您的瀏覽器是否已經參與了投票,從而避免您重復投票; 而那些要求用戶登錄的站點則可以通過 Cookie 來確定您是否已經登錄過,這樣您就不必每次都輸入憑據,
注意: 一般不要用 Cookie 保存資料集或其他大量的資料,并非所有的瀏覽器都支持 Cookie,并且資料資訊是以明文文本的形式保存在客戶端計算機中,因此最好不要保存敏感的、未加密的資料,否則會影響網路的安全性,
php中如何創建Cookie
使用 setcookie() 函式的全部引數設定,實體代碼如下的顯示
<?php setcookie("username","cyy",time()+60*60,"/test",".php.cn",1); ?>
說明:上例中表示建立一個識別名稱為“username” 的 Cookie,其內容值為字串“cyy”,而在客戶端的存盤有效期為1小時,引數"/test" 表示 Cookie 只有在這個子目錄或子目錄中有效,引數".php.cn" 使 Cookie能在如 php.cn 域名下的所有子域中都有效,雖然 “.” 并不是必需的,但加上它會兼容更多的瀏覽器,當最后一個引數設為 1 時,則 Cookie 僅在安全的連接中才能被設定,
使用setcookie()給的值只能是數字或者字串,不能是其他的復雜結構,
php中如何讀取Cookie
從PHP5之后,任何從客戶端發送過來的 Cookie資訊,都會被自動保存在 $_COOKIE 全域陣列中,所以在每個 PHP腳本中都可以從該陣列中讀取相應的 Cookie資訊, $_COOKIE 全域陣列存盤所有通過 HTTP 傳遞的 Cookie 資料內容,并以 Cookie 的識別名稱為索引值、內容值為元素,
在設定 Cookie 腳本中,第一次讀取它的資訊并不會生效,必須重繪或到下一個頁面才可以看到 Cookie 值,因為 Cookie 要先被設定到客戶端,再次訪問時才能被發送過來,這是才能被獲取,所以要測驗一個 Cookie 是否被成功設定,可以再其到期之前 通過另外一個頁面來訪問其的值,
<?php date_default_timezone_set('PRC'); if(!isset($_COOKIE['time'])){ setcookie('time',date('Y-m-d H:i:s'));//檢測cookie是否存在,創建cookie echo '第一次訪問'; }else{ setcookie('time',date('Y-m-d H:i:s'),time()+60);//設定保存cookie失效的時間 echo '上次訪問的時間是:'.$_COOKIE['time'];//輸出上次訪問的時間 echo '<br>'; } echo '本次訪問的時間為:'.date('Y-m-d H:i:s');
在上面的代碼中,首先使用 isset()函式檢測 Cookie 檔案是否存在,如果不存在,則使用 setcookie() 函式創建一個Cookie,并輸出相應的字串;如果 Cookie 檔案存在,則使用 setcookie() 函式 設定檔案失效的時間,并輸出用戶上次訪問網站的時間,最后在頁面輸出本次訪問網站的當前時間,


注意:如果未設定 Cookie 失效的時間,則在關閉瀏覽器時自動洗掉 Cookie 資料,如果為 Cookie 設定了失效的時間,瀏覽器將會記住Cookie 資料,即使重新啟動了計算機,只要沒有到期,再訪問網站時也會獲得訪問的資料資訊,
php中如何洗掉Cookie
1. 使用 setcookie() 函式把目標 Cookie 設定為 “已經過期” 的狀態來洗掉 Cookie
洗掉 Cookie 和 創建 Cookie 的方式基本型別,洗掉 Cookie 也使用 setcookie() 函式, 洗掉 Cookie只需要將 setcookie() 函式中的第二個引數設定為空值,將第三個引數 Cookie 的失效時間設定為 小于系統的當前時間即可,
下面就來通過代碼來將Cookie 的失效時間設定為當前時間減1秒,
setcookie("Cookie_name", "" , time()-1);
上面的代碼中,time()函式回傳以秒表示的當前的時間戳,把當前時間減1秒就會得到過去的時間,從而洗掉 Cookie,
2. 使用 setcookie() 函式把 Cookie 的生存時間默認設定為空, 則生存期限與瀏覽器一樣,瀏覽器關閉時 Cookie就會被洗掉,只指定 Cookie 識別名稱一個引數,即洗掉客戶端中這個指定名稱的 Cookie 資料,
setcookie("Cookie_name");
注意:把失效時間設定為0,也可以直接洗掉 Cookie,
Cookie 的生命周期
雖然 Cookie 可以長期保存在客戶端瀏覽器中,但也不是一成不變的,因為瀏覽器最多允許存盤 300 個Cookie檔案,而且每個 Cookie 檔案支持最大容量為4KB;每個域名最多支持20個 Cookie ,如果達到限制時,瀏覽器會自動地隨機洗掉 Cookie 檔案,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/33650.html
標籤:PHP
下一篇:php Session配置
