之前介紹過在 php 使用 cookie,不過 cookie 比較有安全性上的問題,加上可以儲存的內容有限,所以這邊來介紹另一個也可以用來記錄一些資訊的 session。
簡單比較一下 PHP 的 Session 與 Cookie
- Cookie:儲存於用戶端,伺服器不需承擔計錄檔案的負荷,但容量較小。
- Session:儲存於伺服器端,可以記錄的容量較大,但計錄檔案的負荷是由伺服器承擔。
一般 session 會用在記錄使用者的登入資料,或是購物車等等需要在網站頁面間把資料帶來帶去的時候,雖說是存在伺服器,但比起每次都要進資料庫存取資料來說,還是可以有效降低伺服器的負擔。
啟用 session:
在 php 裡要使用 session 的話要使用 session_start() 這個函式,而且需要放在網頁最上方都還沒有輸出東西之前。
session_start();
設定 session 的值:
我們可以透過 key 對 value 的方法將值紀錄在 session,像這樣:
$_SESSION["name"]="John";
取得 session 的值:
當設定好值之後,就可以透過以下方法取得值了:
echo $_SESSION["name"]; //John
刪除 session:
如果我們不要某一個 session 的值,可以透過 unset 幫助我們刪除:
unset($_SESSION['name']);
unset 是刪除指定的 session key,如我要完全刪掉使用者的 session 的話,則可以使用 session_destroy();