- 1、本文档共58页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Cookie的运作原理
* 6-3 使用 Session 於連線時保存狀態 Session 的意義 Session 的運作原理 存取 Session 刪除 Session 同一網頁存取 Session 同一網站的不同網頁間存取 Session Session 的有效時間 * Session 的意義 一個 Session 代表使用者開啟瀏覽器連線網站, 一直到關閉瀏覽器為止的工作期間。 此期間不論使用者瀏覽該網站的任何網頁, 甚至離開網站後又回來, 對於該網站而言都是同一個 Session。 不過只要重新開啟瀏覽器便是一個新的 Session, 所以即使是同一使用者, 開啟兩個瀏覽器視窗連線同一網站, 將被視為兩個獨立的 Session。 * Session 的意義 * Session 的意義 當網頁程式使用 Session 技術儲存狀態或資料時, 不論是否為相同頁面, 只要在同一個 Session 內即可存取同一份資料。 但若是不同 Session, 就算在同一部電腦、使用相同瀏覽器、連線相同網頁、讀寫同一名稱的資料, 其所存取的仍是兩份獨立不同狀態的資料。 * Session 的運作原理 Session 是一種將資料記錄於伺服器的技術, 下面是其運作的示意圖: 由上面示意圖可以看到程式必須以 Session ID 來存取狀態與資料。 * Session 的運作原理 一般情況下, Session ID 會存放在沒有到期日的 Cookie 內 (但是其他 Session 資料皆儲存於伺服器上)。 所以同一個網站的相同與不同網頁之間可以藉由 Cookie 掌握同一個 Session ID, 進而存取同一份資料。 不過因為 Cookie 沒有到期日, 代表其在關閉瀏覽器時會自動刪除, 因此關閉瀏覽器後重新連線同一網站, 得到的便是新的 Session ID。 * Session 的運作原理 雖然 Session 必須藉由 Session ID 來存取資料, 不過 PHP 會自動處理 Session ID 的取得、建立、傳送等工作。 所以同一網站中各個程式都可以直接存取 Session 資料, 不需要特別處理 Session ID 的相關事宜。 Session 內的資料預設會存放於伺服器, 與 Cookie 不同, 所以較為安全, 不易被檢視或竄改, 因此可以用來儲存重要的狀態或資料。 * Session 的運作原理 此外, 因為 Session 是隨著瀏覽器的開啟與關閉而生滅的機制, 而且將資料記錄在伺服器而非用戶端。 所以相當適合使用在會員登入、購物結帳...等, 各網頁需要共享機密或重要資料, 且每次連線都會因狀況不同而必須儲存不同資料的場合。 * 存取 Session 要在 PHP 程式中使用 Session, 只要先執行 session_start() 函式, 開啟 Session 功能, 即可在後續步驟存取 Session。 不過如前面所提到的, Session 預設使用 Cookie 傳遞 Session ID。 而 Cookie 資訊會放在 HTTP 通訊表頭中, 且 HTTP 的通訊表頭必須在所有輸出之前送出。 * 存取 Session 所以 session_start() 函式執行之前, 若有 echo()、或 HTML 標籤等輸出, 將會導致 session_start() 函式執行錯誤, 而無法使用 Session 功能。 執行 session_start() 後, 便可以用內建變數 $_SESSION[] 建立、修改 Session 變數。其語法如下: * 存取 Session 建立、修改 Session 的範例如下: 設定 Session 變數之後, 只要使用 $_SESSION[name] 便可以讀取先前所存的資料: * 刪除 Session 關閉瀏覽器時, 便無法存取之前的 Session。但是, 很多時候, 即使瀏覽器沒有關閉, 程式也有必要主動刪除 Session。 舉例來說, 網路銀行一定會提供使用者登出的按鈕, 讓使用者安心的離開。 這時, 程式就必須在使用者登出時刪除 Session。否則, 只要用瀏覽器的上一頁鈕回到之前的網頁, 就可以使用原有的 Session。 * 刪除 Session 要刪除 Session, 請用下面兩個函式: 刪除所有 Session 變數:使用 session_unset(); 刪除一個 session 變數:使用 unset($_SESSION[name]); 下面是刪除 Session 的範例: * 同一網頁存取 Session 前面程式 Ch06-01.php 使用 Cookie 記錄上站次數, 不過該程式有一個缺點, 只要使用者一直重新整理網頁, 上站次數就會
文档评论(0)