Session的意義
一個session 代表使用者開啟Browser連線網站,一直到關閉流覽器的工作期間。
在這個期間不論使用者瀏覽該網站的任何網頁,甚至離開網站後又回來,對於該網站而言都是同一個Session。
不過,只要重新開啟Browser,便是一個新的Session,所以即使是同一使用者開啟兩個Browser連接同一網站,將被視為兩個獨立的Session。
當網頁程式使用Ssssion技術儲存狀態或資料時,不論是否相同頁面,只要在同一個Session內即可存取同一份資料。
若是不同Session,就算在同一部PC,使用相同的Browser,連接相同的網頁,讀寫同一名稱資料,其所存取的仍是兩分獨立不同狀態的資料。
Session 的運作原理 (Session 是一種將資料記錄於Server的技術)
Session 的運作原理
一般情況下,SessionID會放在沒有到期日的cookie內,但是其他Session資料都會存在Server上,所以同一個網站的相同與不同網頁之間,可以藉由Cookie掌握同一個SessionID,進而存取相同的資料;不過,因為cookie沒有到期日,代表在關掉browser的時候會自動刪除,因此關閉browser後重新連到該網站,所得到的sessionID,就會是一個新的值。
Sample:
<?php
$SESSION['last'] = 'Eric' ;
$SESSION['first'] = 'Peng' ;
echo 'username: ' ;
echo $SESSION['last'] ;
echo $SESSION['first'];
?>
存取Session
執行Session_start後,就可以用內部變數 $_SESSION[] 建立、修改Session變數。
語法 :
$_SESSION[‘Name’] = value ;
Name : 變數名稱
Value : 變數的值
刪除Session
刪除所有Session : session_unset();
刪除單一指定 : unset($_SESSION[‘name’] );
指定SessionID和印出sessionID
印出: echo session_id();
指定 session_id(‘ xxxxxxxxx ‘) ; //xxxxxxxx = session id
Session的有效時間
前面提到一個Session代表Browser開啟到關閉為止的工作時間,所以理論上,只要不關閉Browser,就可以一直保有同一份Session資料;不過實際上,在PHP中,Session的有效時間並沒有那麼長,根據php.ini檔內的設定,預設會自動刪除超過24分鐘沒有存取握的session資料,所以如果使用者的browser長達24分鐘沒有洞做,session資料就會被自動刪除。
留言列表