PHP程序設(shè)計課件:會話機制_第1頁
PHP程序設(shè)計課件:會話機制_第2頁
PHP程序設(shè)計課件:會話機制_第3頁
PHP程序設(shè)計課件:會話機制_第4頁
PHP程序設(shè)計課件:會話機制_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PHP與WEB頁面交互

會話機制引入

服務(wù)器如何跟蹤客戶端與服務(wù)器之間的會話呢?CookieSession會話跟蹤是Web程序中常用的技術(shù),用來跟蹤用戶的整個會話。常用的會話跟蹤技術(shù)是Cookie與Session。會話機制Cookie記錄在客戶端Session記錄在服務(wù)器端Cookie和Session的區(qū)別是什么呢?客戶端(瀏覽器)發(fā)送請求服務(wù)端解析http請求應(yīng)用程序邏輯處理、數(shù)據(jù)處理http請求http響應(yīng)會話機制服務(wù)器需要記錄該用戶狀態(tài),就使用response向客戶端瀏覽器頒發(fā)一個Cookie??蛻舳藶g覽器會把Cookie保存起來。當瀏覽器再請求服務(wù)器時,瀏覽器把請求的網(wǎng)址連同該Cookie一同提交給服務(wù)器。服務(wù)器通過檢查該Cookie來獲取用戶狀態(tài)。一個用戶的所有請求操作都應(yīng)該屬于同一個會話,不同用戶的會話不能混淆。Cookie是一種服務(wù)器留在用戶計算機上的小文件,常用于識別用戶。一、Cookie會話機制用戶商品信息寫入Cookie購物車商品用戶賬號和加密密碼寫入Cookie用戶登錄信息一、Cookie會話機制Cookie內(nèi)容的存儲是鍵:值對的方式,鍵和值都只能是字符串。Cookie大小有限制,每個瀏覽器對其個數(shù)的限制不相同,每個域名在20~50之間,大小一般都限制在4K。一、Cookie一、Cookie會話機制需要遵循瀏覽器的同源策略。兩個網(wǎng)站即使根域名相同,端口或子域名不同,分別有自己的Cookie,不能操作彼此的Cookie。在本地可以被更改。一般不放置敏感數(shù)據(jù)。Cookie特點:一、Cookie會話機制創(chuàng)建Cookie01使用PHP內(nèi)置的setCookie()函數(shù)來新建立一個Cookie。其語法格式如下所示:boolsetCookie(stringname,stringvalue[,intexpire[,stringpath[,stringdomain[,boolsecure]]]])操作案例<?php setcookie("username","admin",time()+60*60*24*7); setcookie("password","123456",time()+60*60*24*7);示例1創(chuàng)建Cookie。一、Cookie會話機制讀取Cookie02如果Cookie創(chuàng)建成功,客戶端就擁有了Cookie文件,用來保存Web服務(wù)器為其設(shè)置的用戶信息。當客戶再次訪問該網(wǎng)站時,瀏覽器會自動把與該站點對應(yīng)的Cookie信息全部發(fā)回給服務(wù)器。任何從客戶端發(fā)過來的Cookie信息,都被自動保存在$_COOKIE全局數(shù)組中,所以在每個PHP腳本中都可以從該數(shù)組中讀取相應(yīng)的Cookie信息。操作案例<?php echo"賬號:".$_COOKIE['username']."<br>"; echo"密碼:".$_COOKIE['password'];示例2讀取Cookie。一、Cookie會話機制刪除Cookie03如果需要刪除保存在客戶端的Cookie,也是調(diào)用setCookie()函數(shù)來實現(xiàn)??梢允褂靡韵聝煞N方式:把Cookie名稱傳遞setCookie()函數(shù)的第一個參數(shù),其余參數(shù)都省略。使用setCookie()函數(shù)把指定名稱的Cookie設(shè)定為“已過期”狀態(tài)(即把該Cookie的有效期設(shè)置為當前日期之前)。操作案例<?php setcookie("username","",time()-1); setcookie("password",null,time()-1);示例3刪除Cookie。會話機制WEB服務(wù)器端程序區(qū)分出哪些請求消息屬于同一個會話,即能識別出來自同一個瀏覽器的訪問請求,需要瀏覽器對其發(fā)出的每個請求消息都進行標識。屬于同一個會話中的請求消息都附帶同樣的標識號(sessionID),而屬于不同會話的請求消息附帶不同的sessionID。Session是服務(wù)器端使用的一種記錄客戶端狀態(tài)的機制。工作機制:為每個訪客創(chuàng)建一個唯一的sessionID,并基于該id來存儲變量。二、Session會話機制不同用戶的購物車信息購物車不同用戶的登錄狀態(tài)用戶登錄狀態(tài)Session存儲的單一用戶信息,對于應(yīng)用程序中的所有頁面都是可用的。二、Session會話機制Session對象在客戶端第一次請求服務(wù)器時創(chuàng)建。Session生成后,只要用戶繼續(xù)訪問,服務(wù)器就會更新Session的最后訪問時間,并維護該Session。當前用戶只會獲取到自己的Session,各用戶的Session也彼此獨立,互不可見。Session會在一定時間內(nèi)保存在服務(wù)器上,關(guān)閉瀏覽器,Session消失。二、SessionSession特點:二、Session會話機制配置Session01在PHP配置文件php.ini中,有一組與Session相關(guān)的配置選項,例如:session.auto_start、、session.use_cookies等。通過對這些選項設(shè)置新值,就可以對Session進行配置,否則將使用默認的Session配置。二、Session會話機制啟動Session02在PHP中必須調(diào)用session_start()函數(shù),以便讓PHP核心程序把和Session相關(guān)的內(nèi)建環(huán)境變量預(yù)先載入內(nèi)存中。session_start()函數(shù)的語法格式如下:boolsession_start()可以使用session_name()函數(shù)返回或者設(shè)置SessionID的標識符,使用session_id()函數(shù)返回或者設(shè)置SessionID的值。它們的語法格式如下:stringsession_name([stringname])stringsession_id([stringid])操作案例<?php session_start(); //啟動Session echo"SessionID的標識符為:".session_name()."<br>"; echo"SessionID的值為:".session_id();示例4啟動Session,查看SessionID的標識符和值。二、Session會話機制注冊Session變量03在PHP中使用Session變量,除了必須要啟動,還要經(jīng)過注冊的過程。注冊Session變量是通過操作$_SESSION數(shù)組完成的。$_SESSION是一個全局數(shù)組,但必須在調(diào)用session_start()函數(shù)啟動Session之后才能使用。操作案例<?php session_start(); //啟動Session //注冊兩個Session變量 $_SESSION['username']="admin"; $_SESSION['password']="123456";示例5啟動Session,注冊Session變量。二、Session會話機制讀取Session變量04讀取Session變量也是通過訪問$_SESSION數(shù)組完成的。讀取Session變量時,要求注冊Session變量的瀏覽器窗口不能關(guān)閉,否則將訪問不到以上Session變量。操作案例<?php session_start(); //啟動Session //輸出Session變量的值 echo"賬號:".$_SESSION['username']."<br>"; echo"密碼:".$_SESSION['password'];示例6啟動Session,讀取Session變量。二、Session會話機制刪除Session變量05當使用完一個Session變量后,可以將其刪除??梢允褂胾nset()函數(shù)來釋放在Session中注冊的單個變量;如果想把某個用戶在Session中注冊的變量全部清除,可以使用session_unset()函數(shù)實現(xiàn)。操作案例<?php echo"<pre>"; session_start(); //啟動Session echo"刪除前:<br>"; print_r($_SESSION); //刪除一個Session變量 unset($_SESSION['password']); echo"<br>刪除一個Session變量后:<br>"; print_r($_SESSION); //清除所有Session變量 session_unset(); echo"<br>清除所有Session變量后:<br>"; print_r($_SESSION);示例7啟動Session,刪除Session變量。二、Session會話機制銷毀Session06當完成一個會話后,可以將Session銷毀。如果用戶想退出Web系統(tǒng),就需要提供一個注銷的功能,把他的所有信息在服務(wù)器中銷毀。銷毀和當前Session有關(guān)的所有資料,可以調(diào)用session_destroy()函數(shù)結(jié)束當前的會話,并清空會話中的所有資源。操作案例<?php session_start(); //啟動Session

//清除所有Session變量 session_unset(); //銷毀Session session_destroy();示例8啟動Session,銷毀當前Session

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論