88. 什麼是 Cookies?
jollen 發表於 October 27, 2006 10:11 PM
cookies 是一種伺服器端程式用來將資料儲存在使用者端的技術,使用者是否能使用 cookies 端看瀏覽器是否支援。目前瀏覽器雙雄與較新的瀏覽器均支援 cookes,因此可以藉由 cookies 的機制做出許多有趣的技巧。...
Jollen's PHP 專欄「2.16 Session 與 Cookies 程式設計」裡的所有文章!
88. 什麼是 Cookies?jollen 發表於 October 27, 2006 10:11 PM cookies 是一種伺服器端程式用來將資料儲存在使用者端的技術,使用者是否能使用 cookies 端看瀏覽器是否支援。目前瀏覽器雙雄與較新的瀏覽器均支援 cookes,因此可以藉由 cookies 的機制做出許多有趣的技巧。... 89. Cookies 可以做什麼應用?jollen 發表於 October 27, 2006 10:11 PM 一般在撰寫 CGI 程式時,必須使用 Set-Cookie 檔頭來建立 cookes,不過 PHP 提供了 setcookie() 函數可以幫我們輕鬆完成這項工作。 setcookie 函數的原型: int setcookie(string name, string value, int expire, string path, string domain, int secure); 由於 setcookie() 函數只是減輕我們撰寫檔頭的工作,所以 setcookie() 函數使用時和 header() 函數一樣,必須在沒有任何輸出之間呼叫,否則會發生錯誤。 如果 PHP 程式是寫 HTML 裡,則 setcookie() 函數必須寫在 <HTML>... 90. 使用 Cookies 有哪些限制?jollen 發表於 October 27, 2006 10:12 PM 使用者端最多可以同時擁有 300 個 cookies,同一個伺服器最多只能建立 20 個 cookies 給同一個使用者。 每個 cookies 最大只能到 4K。在使用者瀏覽含有 cookies 的網頁時,瀏覽器會將 cookies 暫存於記憶體中,當瀏覽器結束執行後,所有尚未到期的 cookies 都會被儲存於 cookies.txt 的純文字檔裡,cookies.txt 最大只能到 1.2MB。 儲存到 cookies.txt 裡的 cookies 會等待在下次連線時使用。當使用者下次再瀏覽該網頁時,瀏覽器便會根據 path 與 domain 將 cookies 回傳給伺服器。 有些網頁的討論區雖然是採用會員制,但第一次登入後就不必再輸入,甚致關機後再上線也是如此,這麼親切的功能就是使用 cookies 完成的。方法很簡單,使用者登入後便在使用者端建立一個 cookies,下次上線時如果這個 cookies 還在,就不再要求使用者登入。 使用... 91. PHP 如何讀取 Cookies 的資料?jollen 發表於 October 27, 2006 10:12 PM 所有的 cookies 會被存放於 $HTTP_COOKIE_VARS[] 陣列裡,我們也可以透過這個環境變數來取得 cookies,例如: $fullname = $HTTP_COOKIE_VARS["fullname"]; 同樣類型的 cookie 也可以建立成陣列的型式,以方便管理。 <?php $visits = $HTTP_COOKIE_VARS['visits']; if (!isset($visits)) $visits = 1; setcookie("visits", $visits+1); ?> <p>歡迎您第 <?=$visits?> 次光臨!</p> 我們再來看一個範例: <?php if ($QUERY_STRING != 'SET') { setcookie("cookie", "COOKIES OK!"); header("Location: $PHP_SELF?SET"); }... 92. 什麼是 Session?jollen 發表於 October 27, 2006 10:13 PM 到目前為止我們我們可以發現cookie的一個特點:同一個目錄下與其子目錄下的檔案都可以讀取到cookie。因為cookie具備這樣的特色,因此我們才可以利用cookie儲存使用者的相關資訊。 session 與 cookie 不同的地方在於,cookie 的資訊是儲存在使用者端 (client),但是session則是儲存在伺服器端 (server)。 事實上 session 如果沒有 cookie 也沒有辦法運作,但是我們知道,使用者端是否接受 cookie 可以在瀏覽器裡設定,因為使用者也可以拒絕接受 cookie。幸運的是,PHP 內建的 session 函數在沒有 cookie 場合下可以採取其它方法,因此還可以使用 session。 為什麼要使用 session 而不用 cookie 呢? 1. 因為使用 session 將資用者資訊儲存在 server 端是比較安全的做法 2. 使用者關閉 cookie 的功能時,session 仍然可以運作... 93. PHP 要如何使用 session?jollen 發表於 October 27, 2006 10:13 PM session 的使用必須經過啟動、註冊的程序,底下以步驟方式說明 session 的使用方法: 1. 初始化 session: session_start(); 2. 註冊 session: session_register("userID"); 所謂的註冊 session 意思就是將變數的值保存到 session 裡。要特別注意這裡的寫法,要註冊的變數寫法是: session_register("userID"); (變數的名稱) 這是錯誤的寫法: session_register($userID); 3. 清除 session: session_destroy(); 當我們不再使用 session 時,可以呼叫session_destroy() 將所有已註冊的 session 清除。... 94. 關於 session 的生存期限jollen 發表於 October 27, 2006 10:14 PM 大家可能會有一個疑問,那就是,只要使用者登入一次後,如果 server 端永遠保存 session 的內容,那使用者不就永遠不用登入了嗎?答案是:對的。 但是事實上卻不是如此,因為 session 並不是永遠都存在著,只要 session 一消失,程式讀不到 session 的內容,自然會再要求使用者登入。 也就是說,session 有一個「生存期限」,當生存期限過了之後,session 自然會消失。那麼,session 在什麼情況下會消失呢?當底下幾種情況發生時,session 就會消失: 1. 關閉瀏覽器並重新開啟後,session 就會消失 2. session 生存期限到時後,session 自動消失 PHP 預設是將瀏覽器關閉並重新開啟後,session 就自行消失,也就是 session 的 lifetime 為0。 其實我們可以自己設定 session 的生存期限,當生存期限到期時,session 就會自動消失,而不管瀏覽器是不是被關閉並重新開啟。 什麼場合需要重設 session 的生存期限呢?例如,我們希望使用者在 10 分鐘後重新登入,我們就可以設定... |
| Top | Jollen's Forum |
Jollen's PHP 專欄採用 Attribution-NonCommercial-NoDerivs 2.5 授權條款
Copyright(c) 2001-2007 www.jollen.org