了解了session的原理後,我們來學習如何在PHP中使用session。
1.開啟session
首先我們要開啟session,那麼第一個要學習的函數就是
bool session_start()了,這個函數沒有參數。在php檔案的開始使用
session_start();
就可以啟用新會話或重複使用現有會話了。
2.新增session資料
開啟會話之後,那麼在接下來的處理中,我們就可以使用$_SESSION變數來存取資訊了。我們要知道的是$_SESSION變數是個陣列。當我們要把資訊存入session的時候應該這麼寫:
$_SESSION['userName'] = 'wang';
3.讀取session資料
讀取很簡單,就像我們使用陣列一樣,如下:
$userName = $_SESSION['userName'];
當然也可以$_SESSION['userName'] 來用。和數組一樣的使用。
4.銷毀session資料
我們可以使用很多種方式來銷毀session資料。
a) unset函數
我們透過使用類似
unset($_SESSION['XXX']);
來銷毀session中的 XXX 變數。 PS:請不要!請不要!請不要unset($_SESSION),會導致後續無法使用$_SESSION這個變數! ! !
b) 空數組賦值給session變數
$_SESSION = array();
之前我們說過$_SESSOIN變數是個數組,那麼空數組賦值的話也是相當於將目前會話的$_SESSION變數中的值銷毀。
c) session_destory() 函數
這個函數會銷毀目前會話中的全部數據,並結束目前會話。但不會重置目前會話所關聯的全域變量, 也不會重置會話 cookie。
5.session的擴充:預設session儲存在哪裡。
在php.ini設定檔中有這麼一行 session.save_handler = files,
files,說明了php預設的是用檔案讀寫的方式來保存session的。那麼在哪個目錄呢?繼續看。 session.save_path = "/tmp",
這一行前面有 ; ,表示是註解的,不過即便這樣,php預設的
session 也是保存在這裡的,/tmp目錄。上圖:
從圖中我們可以看到確實在這個目錄下面,我們順便看看裡面的內容
我的寫入session的語句是:
$_SESSION['as'] = 'as';
解讀一下,第一個as代表的是$_SESSION['as']中的as,|後面的s表示的是這是一個字串類型的數據,2表示的是這個字串所佔的位元組數,最後雙引號引起來的是值as。