php會話控制之PHP中使用session
了解了session的原理后,我們來學習如何在PHP中使用session。
1.開啟session
首先我們要開啟session,那么第一個要學習的函數(shù)就是
bool session_start()了,這個函數(shù)沒有參數(shù)。在php文件的開始使用
session_start();
就可以啟用新會話或者重用現(xiàn)有會話了。
2.添加session數(shù)據(jù)
開啟會話之后,那么在接下來的處理中,我們就可以使用$_SESSION變量來存取信息了。我們要知道的是$_SESSION變量是個數(shù)組。當我們要把信息存入session的時候應該這么寫:
$_SESSION['userName'] = 'wang';
3.讀取session數(shù)據(jù)
讀取很簡單,就像我們使用數(shù)組一樣,如下:
$userName = $_SESSION['userName'];
當然也可以 $_SESSION['userName'] 來用。和數(shù)組一樣的使用。
4.銷毀session數(shù)據(jù)
我們可以使用很多種方式來銷毀session數(shù)據(jù)。
a) unset函數(shù)
我們通過使用類似
unset($_SESSION['XXX']);
來銷毀session中的 XXX 變量。PS:請不要!請不要!請不要unset($_SESSION),會導致后續(xù)無法使用$_SESSION這個變量?。?!
b) 空數(shù)組賦值給session變量
$_SESSION = array();
之前我們說過$_SESSOIN變量是個數(shù)組,那么空數(shù)組賦值的話也是相當于將當前會話的$_SESSION變量中的值銷毀。
c) session_destory() 函數(shù)
這個函數(shù)會銷毀當前會話中的全部數(shù)據(jù),并結(jié)束當前會話。但是不會重置當前會話所關(guān)聯(lián)的全局變量, 也不會重置會話 cookie。
5.session的擴展:默認session存儲在哪里。
在php.ini配置文件中有這么一行 session.save_handler = files,?
files,說明了php默認的是用文件讀寫的方式來保存session的。那么在哪個目錄呢?繼續(xù)看。session.save_path = "/tmp",
這一行前面有個 ; ,說明是被注釋的,不過即便這樣,php默認的
session 也是保存在這里的,/tmp目錄。上圖:
?從圖中我們可以看到確實在這個目錄下面,我們順便看看里面的內(nèi)容
?我的寫入session的語句是:
$_SESSION['as'] = 'as';
解讀一下,第一個as代表的是$_SESSION['as']中的as,|后面的s表示的是這是一個字符串類型的數(shù)據(jù),2表示的是這個字符串所占的字節(jié)數(shù),最后雙引號引起來的是值as。