Title1

Title2

Title3

10. Cookie 與 Session

一、為何要使用Cookie與Session?

  1. 使用者在瀏覽網站時,並不是一直與伺服器保持連線,當伺服器將結果傳回瀏覽器後,就結束與伺服器的連線
  2. Cookie 與 Session就是要解決網站不能一直保持連線的狀態。
  3. Cookie是在使用者的電腦產生一個檔案來記憶
  4. Session是在伺服端的記憶體產生一個空間來記憶

二、Cookie與Session的比較

Cookie

因為 Cookie 常常用來存取使用者的資訊,為了怕被拿來濫用,或是佔用太多硬碟空
間,所以對 Cookie 做出了以下的限制:

  1. 每個使用者的瀏覽器只能支援(存取)300 個 Cookie
  2. 每個瀏覽器只能針對同一個伺服器存取 20 個 Cookie
  3. 每個 Cookie 的大小最多僅 4k Bytes 的容量
  4. 有些瀏覽器可以把 Cookie 的功能關掉,若關掉後 Cookie 就不能使用

Session

當 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 時,不外乎三個程序:

 

  1. 啟動 session 功能:使用 session_start( ) 函數
  2. 註冊 session 變數:使用 $_SESSION 陣列變數
  3.  清除 session 變數或檔案:使用 unset( )或 session_destroy( )函數
  4. (使用 $_SESSION=array( ) 可以清除所有的 session 變數) 

三、cookie

啟用 cookie

cookie 的基本語法
setcookie("變數名稱","變數值","存活時間","路徑","網域")

setcookie("token", $rowData['token'], time()+3600);

 

讀取 cookie

透過 $_COOKIE 取得剛剛的 token 値囉!

$_COOKIE['token']

 

刪除 cookie

直接使用 setcookie,然後變數值給空値就可以了,時間記得一併減掉比較保險。

setcookie( "token", "", time()- 60 * 60 );