Home >> Blog >> php session 簡介 - session的啟動、應用與清除方式
php session 簡介 - session的啟動、應用與清除方式
什麼是session?
一般來說,session是指兩種介質之間的通信幀。PHP session用於將資料存儲在伺服器而不是用戶的計算機上。session標識符或 SID 是一個唯一編號,用於在基於session的環境中識別每個用戶。SID 用於將用戶與他在伺服器上的信息(如貼文、電子郵件等)鏈接起來。
session比 cookie 好在哪裡?
雖然 cookie 也用於存儲用戶相關資料,但它們存在嚴重的安全問題,因為 cookie 存儲在用戶的計算機上,因此它們對攻擊者開放,可以輕鬆修改 cookie 的內容。攻擊者在 cookie 中添加有害資料可能會導致應用程序崩潰。
除此之外,cookie 還會影響網站的性能,因為 cookie 會在用戶每次查看頁面時發送用戶資料。每次瀏覽器向伺服器請求 URL 時,該網站的所有 cookie 資料都會在請求中自動發送到伺服器。
以下是 PHP session中涉及的不同步驟:
- 啟動 PHP session:第一步是啟動session。session啟動後,可以創建session變量來存儲信息。PHP session_start()函數用於開始一個新session。它還為用戶創建一個新的session ID。
下面是開始一個新session的 PHP 代碼:
< ?php
session_start();
?> - 存儲session資料:使用$_SESSION[]超全局數組的鍵值對中的session資料。可以在session的生命週期內訪問存儲的資料。
下面是使用兩個session變量 Rollnumber 和 Name 存儲session的 PHP 代碼:
< ?php
session_start();
$_SESSION["Rollnumber"] = "11";
$_SESSION["Name"] = "Ajay";
?>
- 訪問session資料:通過首先調用session_start()然後將相應的鍵傳遞給$_SESSION關聯數組,可以輕鬆訪問存儲在session中的資料。
使用兩個session變量 Rollnumber 和 Name 訪問session資料的 PHP 代碼如下所示:
< ?php
session_start();
echo 'The Name of the student is :' . $_SESSION["Name"] . '
'; echo 'The Roll number of the student is :' . $_SESSION["Rollnumber"] . '
'; ?>輸出:
學生姓名:Ajay
學生的捲號是:11 - 銷毀某些session資料:要僅刪除某個session資料,可以將未設置功能與$_SESSION關聯數組中的相應session變量一起使用。
僅從關聯session數組中取消設置“Rollnumber”session變量的 PHP 代碼:
< ?php
session_start();
if(isset($_SESSION["Name"])){
unset($_SESSION["Rollnumber"]);
}
?>
- 銷毀完整session:session_destroy()函數用於完全銷毀session。session_destroy() 函數不需要任何參數。
< ?php
session_start();
session_destroy();
?>
要點
- session ID 由 PHP 引擎隨機生成。
- session資料存儲在伺服器上,因此不必與每個瀏覽器請求一起發送。
- session_start() 函數需要在頁面的開頭調用,然後瀏覽器中的腳本生成任何輸出。