PHP程序設(shè)計課件:PHP與WEB頁面交互_第1頁
PHP程序設(shè)計課件:PHP與WEB頁面交互_第2頁
PHP程序設(shè)計課件:PHP與WEB頁面交互_第3頁
PHP程序設(shè)計課件:PHP與WEB頁面交互_第4頁
PHP程序設(shè)計課件:PHP與WEB頁面交互_第5頁
已閱讀5頁,還剩49頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PHP與WEB頁面交互

PHP與Web頁面交互認(rèn)知引入

PHP是如何與網(wǎng)頁進(jìn)行交互的呢?$_POST[]$_GET[]PHP與Web頁面交互認(rèn)知Http網(wǎng)頁web服務(wù)器APACHE網(wǎng)頁編程語言PHP數(shù)據(jù)庫SQLHttpHttpPHP與Web頁面交互認(rèn)知Web表單提交數(shù)據(jù)Web表單發(fā)送數(shù)據(jù)到服務(wù)器。登錄、注冊時需將表單數(shù)據(jù)從客戶端傳送到服務(wù)器,經(jīng)服務(wù)器處理后,再將用戶所需要信息傳回客戶端,實(shí)現(xiàn)PHP與Web表單的交互。通過URL參數(shù)傳遞數(shù)據(jù)頁面URL通過?帶參數(shù)傳遞數(shù)據(jù)。瀏覽商品信息時頁面排版相同,但是數(shù)據(jù)內(nèi)容不同,可以通過將商品ID作為地址欄參數(shù)傳入頁面,再根據(jù)值進(jìn)行數(shù)據(jù)查詢,然后顯示在頁面。PHP與Web頁面交互認(rèn)知表單提交方式POST方法POST方法不依賴于URL,不會將傳遞的參數(shù)值顯示在地址欄中,而是將參數(shù)值放置在是HTTP包的包體中。傳輸更多內(nèi)容,傳輸方法也更加安全,POST方法通常用于上傳信息。GET方法GET方法完全依賴于URL,參數(shù)值會附在URL之后,以

?分割URL和傳輸數(shù)據(jù),多個參數(shù)使用

&連接。傳輸安全性很低,而且受到URL長度限制,傳輸內(nèi)容很小,GET方法通常用于獲取信息,最終效果如同直接通過URL參數(shù)傳遞數(shù)據(jù)。PHP與Web頁面交互認(rèn)知Web表單POST方法提交數(shù)據(jù)

<formaction=""method="post">

<inputname="user"

type="text"/><inputtype="submit"/></form>獲取提交數(shù)據(jù)$user=$_POST["user"];一、$_POST[]POST提交操作案例<html> <head> <metacharset="UTF-8"> <title></title> </head> <body> <formaction="do9-1.php"method="post"> 賬號:<inputtype="text"name="username"/><br/> 密碼:<inputtype="password"name="password"/><br/> <inputtype="submit"value="登錄"/> </form> </body></html>示例1表單以POST方式提交用戶登錄信息。接受表單數(shù)據(jù)操作案例<?php if(!empty($_POST)){ $username=$_POST["username"]; $password=$_POST["password"]; echo"接收到的賬號為:".$username."<br>"; echo"接收到的密碼為:".$password; }示例1接收提交的用戶登錄信息。PHP與Web頁面交互認(rèn)知Web表單GET方法提交數(shù)據(jù)

<formaction=""method="get">關(guān)鍵字:<inputname="user"

type="text"/><inputtype="submit"/></form>獲取提交數(shù)據(jù)$user=$_GET["user"];二、$_GET[]PHP與Web頁面交互認(rèn)知表單中定義name屬性的元素名及其值以參數(shù)值方式附在URL之后,以

?分割URL和傳輸數(shù)據(jù),多個參數(shù)用

&連接。從帶有GET方法的表單發(fā)送的信息,對任何人都是可見的(會顯示在瀏覽器的地址欄)。$pwd=$_GET["password"]在發(fā)送密碼或其他敏感信息時,不應(yīng)該使用這個方法!二、$_GET[]通過URL參數(shù)傳遞數(shù)據(jù)URL參數(shù)傳遞操作案例<html> <head> <metacharset="UTF-8"> <title></title> </head> <body> <ahref="./do9-2.php?username=admin&password=123456">登錄</a> </body></html>示例2通過超鏈接傳遞用戶登錄信息。接受URL參數(shù)值操作案例<?php if(!empty($_GET)){ $username=$_GET["username"]; $password=$_GET["password"]; echo"接收到的賬號為:".$username."<br>"; echo"接收到的密碼為:".$password; }示例2接收傳遞的用戶登錄信息。謝謝觀看PHP與WEB頁面交互

文件上傳引入

PHP是如何實(shí)現(xiàn)文件上傳功能的呢?上傳設(shè)置$_FILES數(shù)組文件上傳處理函數(shù)文件上傳文件上傳文件上傳框+提交按鈕上傳文件表單文件獲取、重命名、保存。處理上傳文件代碼upload.php一、上傳設(shè)置文件上傳method="post"POST方式發(fā)送表單信息,對任何人都是不可見的。enctype="multipart/form-data"提交表單時使用的內(nèi)容類型為文件流的形式。客戶端設(shè)置01在form表單中通過<inputtype="file">標(biāo)記選擇本地文件進(jìn)行提交。一、上傳設(shè)置文件上傳服務(wù)器端設(shè)置02上傳文件的接收和后續(xù)處理需要通過PHP腳本來處理。文件上傳與PHP配置文件的設(shè)置有關(guān),可以設(shè)置php.ini文件中的一些參數(shù),用來精確調(diào)節(jié)PHP的文件上傳功能。二、$_FILES[]數(shù)組文件上傳通過POST方法上傳的文件有關(guān)信息都被存儲在多維數(shù)組$_FILES中。文件上傳后,首先存儲于Web服務(wù)器的臨時目錄中,同時在PHP腳本中就可以獲取到一個$_FILES全局?jǐn)?shù)組。三、文件上傳處理函數(shù)文件上傳move_uploaded_file()函數(shù):用來把上傳的文件從Web服務(wù)器的臨時目錄中移動到新的位置,如果目標(biāo)文件已經(jīng)存在,將會被覆蓋。成功則返回TRUE,否則返回FALSE。其語法格式為:boolmove_uploaded_file(stringfilename,stringdestination)文件上傳獲取表單域提交的數(shù)據(jù),取得上傳文件的臨時路徑及文件名。設(shè)置上傳文件的文件夾為當(dāng)前路徑的uploads目錄(事先要創(chuàng)建好)。獲取上傳文件的后綴名,構(gòu)建一個防止重復(fù)的新文件名。將有效文件從臨時目錄移動到指定目錄下。上傳文件處理的步驟:操作案例<html> <head> <metacharset="UTF-8"> <title></title> </head> <body> <formaction="upload.php"method="post"enctype="multipart/form-data"> 選擇文件:<inputtype="file"name="image"/> <inputtype="submit"value="上傳文件"/> </form> </body></html>示例1通過表單上傳圖片。操作案例<?php $path="./uploads/"; //設(shè)置上傳后保存文件的文件夾 $file=$_FILES['image']; //獲取上傳的文件 $file_name=$file["name"]; //獲取上傳文件的原文件名 $file_tmp_name=$file["tmp_name"]; //獲取上傳文件的臨時文件名 $ext=pathinfo($file_name,PATHINFO_EXTENSION); //獲取上傳文件的后綴名 $new_name=date('YmdHms').rand(100,999).".".$ext; //構(gòu)造不會重復(fù)的新文件名 $file_new_name=$path.$new_name; //設(shè)置新文件路徑 //將臨時文件移動到指定的上傳文件夾中 move_uploaded_file($file_tmp_name,$file_new_name); echo"圖片上傳成功,新的文件名為:".$new_name;示例1文件上傳處理。謝謝觀看PHP與WEB頁面交互

會話機(jī)制引入

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論