網頁前端設計與開發運用培訓班
一、為何要使用Cookie與Session?
- 使用者在瀏覽網站時,並不是一直與伺服器保持連線,當伺服器將結果傳回瀏覽器後,就結束與伺服器的連線
- Cookie 與 Session就是要解決網站不能一直保持連線的狀態。
- Cookie是在使用者的電腦產生一個檔案來記憶
- Session是在伺服端的記憶體產生一個空間來記憶
因為 Cookie 常常用來存取使用者的資訊,為了怕被拿來濫用,或是佔用太多硬碟空
間,所以對 Cookie 做出了以下的限制:
- 每個使用者的瀏覽器只能支援(存取)300 個 Cookie
- 每個瀏覽器只能針對同一個伺服器存取 20 個 Cookie
- 每個 Cookie 的大小最多僅 4k Bytes 的容量
- 有些瀏覽器可以把 Cookie 的功能關掉,若關掉後 Cookie 就不能使用
當 PHP 在使用 Session 的功能之前,由於 php.ini 的一些設定值會影響 session 函數
的使用,例如:設定項目「session.save_path」預設為 /tmp,其目的在指定 session
檔案存放路徑;而設定項目「session.auto_start」預設為 0(關閉),其目的在指定 session
是否自動啟動。上述的設定可以在官方版的 PHP 使用手冊中查詢關鍵字「php.ini」
得到 PHP directives 的完整詳細說明。
如果要改變這些設定,可直接修改 php.ini 再重新啟動 Web Server,也可以利用
ini_set( )函數來設定,設定方式如下:
ini_set ("參數名稱", "新的參數值");
使用 Session 時,不外乎三個程序:
- 啟動 session 功能:使用 session_start( ) 函數
- 註冊 session 變數:使用 $_SESSION 陣列變數
- 清除 session 變數或檔案:使用 unset( )或 session_destroy( )函數
- (使用 $_SESSION=array( ) 可以清除所有的 session 變數)
cookie 的基本語法
setcookie("變數名稱","變數值","存活時間","路徑","網域")
setcookie("token", $rowData['token'], time()+3600);
讀取 cookie透過 $_COOKIE 取得剛剛的 token 値囉!
$_COOKIE['token']
刪除 cookie
直接使用 setcookie,然後變數值給空値就可以了,時間記得一併減掉比較保險。
setcookie( "token", "", time()- 60 * 60 );