[PHP] session
HTTP 之無狀態(Stateless)特性:使用者在瀏覽網頁時並不是一直與伺服器保持在連線的狀態下,事實上當瀏覽者送出需求到伺服器端處理後將結果回傳顯示,就已經結束與伺服器的連線。當需要新資料或是更新顯示內容時,都必須重新載入頁面或是重新送出需求。
Cookie 與 Session 的存在就是為了要解決網站不能保存狀態的問題。
● 在登入者的電腦中放入一個小檔案來記憶→ Cookie
● 在伺服器的記憶體產生一個空間來記憶→ Session
☞ [ 文件Download ]
〈1〉為什麼要把 session 寫入 DB 1. php 的 session 預設是以「檔案」的方式儲存在伺服器端,然而我們要刪除某人使用的 session 時,卻十分的有困難,所以我們將 session 寫入到 mysql(DB),就可以刪除特定人員或是所有遠端的 session。
2. 並且,php session 是放在 server 上的資訊, 所以理所當然也是要佔一個小空間的, 如果硬碟被塞爆了, sess_xxxx 變成一個大小為 0 的檔案, 然後程式中有用到 session 判斷的地方就會一直無效!
☞ 【php】把session寫入Database(mysql) / 教學 / 免空可用
☞ Apache 記事 -- php session 也是要空間的
☞ SESSION 與 COOKIE
〈2〉session 運作的方式 1. 在「登入」的時候,將session寫入db。
2. 每一個頁面都要session_start(),讓session可以在網頁間交換。
3. 在「登出」的時候,刪除db裡記錄的session,並unset session變數。
4. 一定要先啟用session,清除session這個動作才有意義。
☞ [PHP] 清除SESSION的標準作法(可應用於使用者登出)
☞ [教學] PHP & MySQL 學習筆記 第七堂(簡易SESSION和COOKIE建置)
〈3〉session 與 DB ☞ 畫db table
☞ 探討如何把session存入資料庫
☞ Session Class
☞ php session manager help
☞ PHP Session 改存放到 MySQL 中
☞ Password-Lock a Single Page with PHP - How did I do?
☞ PHP Session Array: Keep Track of Your Users
☞ php中如何同時使用session和cookie來保存用戶登錄信息
☞ PHP 如何 清除 SESSION 資料
〈4〉session 與 cookie ● cookie 不會 timeout,甚至可以在下次開機後仍存在,缺點是它有容量限制,而且使用者有可能會偷偷改它,比較沒那麼安全。
● session 會 timeout,使用 web server 的資源,使用者無法偷改此值,安全性高一些。
沒有留言: