php會話控制之PHP中使用s...LOGIN

php會話控制之PHP中使用session

了解了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目錄。上圖:

11.PNG

 從圖中我們可以看到確實在這個目錄下面,我們順便看看裡面的內容

document_2015-08-31_55e44c8eb3e27.PNG

 我的寫入session的語句是:

$_SESSION['as'] = 'as';

解讀一下,第一個as代表的是$_SESSION['as']中的as,|後面的s表示的是這是一個字串類型的數據,2表示的是這個字串所佔的位元組數,最後雙引號引起來的是值as。

#下一節
<?php session_start(); // store session data $_SESSION['views']=1; ?> <html> <body> <?php //retrieve session data echo "Pageviews=". $_SESSION['views']; ?> </body> </html>
章節課件