php session()函數在php開發應用中有很重要的一個角色了,下面我來給初學者簡單的介紹一下關於php session()函數使用方法與執行個體。
對比起 Cookie,Session 是儲存在伺服器端的會話,相對安全,並且不像 Cookie 那樣有儲存長度限制,本文簡單介紹 Session 的使用。
由於 Session 是以文字檔形式儲存在伺服器端的,所以不怕用戶端修改 Session 內容。實際上在伺服器端的 Session 檔案,PHP 自動修改 Session 檔案的許可權,只保留了系統讀和寫入權限,而且不能通過 ftp 修改,所以安全得多。
由於 Session 是以文字檔形式儲存在伺服器端的,所以不怕用戶端修改 Session 的內容。實際上在伺服器端的 Session 檔案,PHP自動修改 Session 檔案的許可權,只保留了系統讀和寫入權限,而且不能通過 ftp 修改,所以安全很多。
| 代碼如下 |
複製代碼 |
// 啟動Session session_start(); // 聲明一個名為 admin 的變數,並賦空值。 $_SESSION["admin"] = null; ?> // 啟動Session session_start(); // 將原來註冊的某個變數銷毀 unset($_SESSION['admin']); // 銷毀整個 Session 檔案 session_destroy(); ?> // 啟動Session session_start(); // 儲存一天 $lifeTime = 24 * 3600; setcookie(session_name(), session_id(), time() + $lifeTime, "/"); ?> // 儲存一天 $lifeTime = 24 * 3600; session_set_cookie_params($lifeTime); session_start(); $_SESSION["admin"] = true; ?> // 儲存一天 $lifeTime = 24 * 3600; // 取得當前 Session 名,預設為 PHPSESSID $sessionName = session_name(); // 取得 Session ID $sessionID = $_GET[$sessionName]; // 使用 session_id() 設定獲得的 Session ID session_id($sessionID); session_set_cookie_params($lifeTime); session_start(); $_SESSION['admin'] = true; ?> // 設定一個存放目錄 $savePath = './session_save_dir/'; // 儲存一天 $lifeTime = 24 * 3600; session_save_path($savePath); session_set_cookie_params($lifeTime); session_start(); $_SESSION['admin'] = true; ?> |
另外,我們還可以使用 session_set_save_handler 函數來自訂 Session 的調用方式。
PHP函數補完:session_id()
session_id()
session_id() 存取目前 session 代號。
文法: string session_id(string [id]);
本函數可取得或者重新設定目前存放 Session 的代號。若無參數 id 則表示只有取得目前 Session 的代號,加上參數則表示將 Session 代號設成新指定的 id。輸入及返回均為字串。
輸出 session_id()
| 代碼如下 |
複製代碼 |
session_start(); echo session_id(); // 輸出 dqr58dnuqj2gufvg4o3tmjb9v4 ?> |
設定 session_id()
| 代碼如下 |
複製代碼 |
session_id("NowaMagic"); session_start(); echo session_id(); // 輸出 NowaMagic ?>
|
session_id 恢複 session的內容
php的session是可以程式恢複的,這個和java不太一樣。session的恢複機制可以實現多個應用程式session的共用,因為php的session都是以檔案形式或者資料庫儲存的。首先是session_id的擷取是通過session_id()函數擷取,這個值可以進行傳遞。
程式恢複session,首先要知道session_id,大家通過手冊可以知道session的恢複通過session_id($id);但是在恢複時要注意一個先後順序,要得到之前session的內容,必須在session_start()之前執行session_id($id),這樣才能在執行了session_start時初始化session的時候恢複到之前的內容,否則的話你得到的是一個空的session,你什麼也得不到。之前session被重新初始化了。這個和session_start()的作用有密切關係,因為session_start告訴php,session要初始化,要從session檔案中還原序列化session內容,所以session_start的作用就是把之前儲存的檔案內容還原序列化。session_start序列化之前要知道session_id,如果沒有就產生一個新的session_id。如果有就還原序列化相應檔案的內容。
http://www.bkjia.com/PHPjc/628625.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/628625.htmlTechArticlephp session()函數在php開發應用中有很重要的一個角色了,下面我來給初學者簡單的介紹一下關於php session()函數使用方法與執行個體。 對比起 Coo...