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

下載本文檔

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

文檔簡(jiǎn)介

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

?分割URL和傳輸數(shù)據(jù),多個(gè)參數(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"> 賬號(hào):<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"接收到的賬號(hào)為:".$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ù),多個(gè)參數(shù)用

&連接。從帶有GET方法的表單發(fā)送的信息,對(duì)任何人都是可見的(會(huì)顯示在瀏覽器的地址欄)。$pwd=$_GET["password"]在發(fā)送密碼或其他敏感信息時(shí),不應(yīng)該使用這個(gè)方法!二、$_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"接收到的賬號(hào)為:".$username."<br>"; echo"接收到的密碼為:".$password; }示例2接收傳遞的用戶登錄信息。謝謝觀看PHP與WEB頁面交互

文件上傳引入

PHP是如何實(shí)現(xiàn)文件上傳功能的呢?上傳設(shè)置$_FILES數(shù)組文件上傳處理函數(shù)文件上傳文件上傳文件上傳框+提交按鈕上傳文件表單文件獲取、重命名、保存。處理上傳文件代碼upload.php一、上傳設(shè)置文件上傳method="post"POST方式發(fā)送表單信息,對(duì)任何人都是不可見的。enctype="multipart/form-data"提交表單時(shí)使用的內(nèi)容類型為文件流的形式??蛻舳嗽O(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)信息都被存儲(chǔ)在多維數(shù)組$_FILES中。文件上傳后,首先存儲(chǔ)于Web服務(wù)器的臨時(shí)目錄中,同時(shí)在PHP腳本中就可以獲取到一個(gè)$_FILES全局?jǐn)?shù)組。三、文件上傳處理函數(shù)文件上傳move_uploaded_file()函數(shù):用來把上傳的文件從Web服務(wù)器的臨時(shí)目錄中移動(dòng)到新的位置,如果目標(biāo)文件已經(jīng)存在,將會(huì)被覆蓋。成功則返回TRUE,否則返回FALSE。其語法格式為:boolmove_uploaded_file(stringfilename,stringdestination)文件上傳獲取表單域提交的數(shù)據(jù),取得上傳文件的臨時(shí)路徑及文件名。設(shè)置上傳文件的文件夾為當(dāng)前路徑的uploads目錄(事先要?jiǎng)?chuàng)建好)。獲取上傳文件的后綴名,構(gòu)建一個(gè)防止重復(fù)的新文件名。將有效文件從臨時(shí)目錄移動(dòng)到指定目錄下。上傳文件處理的步驟:操作案例<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"]; //獲取上傳文件的臨時(shí)文件名 $ext=pathinfo($file_name,PATHINFO_EXTENSION); //獲取上傳文件的后綴名 $new_name=date('YmdHms').rand(100,999).".".$ext; //構(gòu)造不會(huì)重復(fù)的新文件名 $file_new_name=$path.$new_name; //設(shè)置新文件路徑 //將臨時(shí)文件移動(dòng)到指定的上傳文件夾中 move_uploaded_file($file_tmp_name,$file_new_name); echo"圖片上傳成功,新的文件名為:".$new_name;示例1文件上傳處理。謝謝觀看PHP與WEB頁面交互

會(huì)話機(jī)制引入

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論