Pages

Subscribe:

Ads 468x60px

Labels

2014年4月1日 星期二

以 Dreamweaver 開發 PHP 講義 CH9 Session

撰寫人:致理電腦 林新德
一般講「會談」(session)是指客戶還在瀏覽該站,或者還在使用該站的服務。Session
是伺服器為了知道客戶端是否還在瀏覽該站的機制。為了不佔用連線資源,HTTP是
個溝通完就斷線的協定,所以伺服器無法得知客戶端是否還在該站瀏覽。因此,就
必須訂定一些規則來實現這個機制。
首先,server必須先分辨client,一般有兩種做法。第一種,在網站的所有連結中都置入
一個GET參數「客戶識別碼」(Session ID),這種方式實做起來較為麻煩,而且一
不小心就會置換「客戶識別碼」。
第二種,是利用Cookie存放「Session ID」,只要在client第一次拜訪時將Session ID存入
Cookie即可。這種是常用也是比較方便的做法。此時Seesion的存活就會依賴Cookie
是否有效而定。
若client的瀏覽器停在某個網頁,使用者可能某些原因(例如:去洗澡)久久未再拜訪該
站,或者根本就已離開該站。此時會依Session的存活時間,決定Session是否有效。
當然,server是以client最後一次拜訪開始計時的;若client在Session存活時間內,
持續訪問該站,Session就會一直有效。一般Session的存活時間會設定為5~20分鐘,
流量越大的網站,Session存活時間設得越短越節省主機資源。
有了Session ID之後,server會在主機記憶體為每個Session ID建立一個對應的Session物
件,資料就存在Session物件裡。有效的Session越多,使用的記憶體就會越多。
◎ 常用操作Session的函式有:session_start() 啟用Session、
session_destroy() 清除Session物件。讀取和設定Session 使用 $_SESSION 預
設變數。session_name函式可以讀取或設定Session ID名稱,預設為PHPSESSID。
◎ 登出時,只要用session_destroy()函式即可。

沒有留言:

張貼留言