版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第3章用PHP進行Web編程PHP是開發(fā)Web應(yīng)用的首選語言之一,也是最佳選擇。PHP本身就是為Web而生的。它提供了一系列可以使Web開發(fā)更加方便、更加容易的功能和特性。本章先介紹用PHP進行Web編程的一些基本用法,了解用PHP進行Web編程的一些特性,接著通過一個簡單的完整實例實踐這些用法和特性,加深對使用PHP進行Web編程的理解和掌握。第3章用PHP進行Web編程PHP是開發(fā)Web應(yīng)用的首選13.1PHP的Web編程基礎(chǔ)本節(jié)將講述最基本的PHPWeb編程知識,諸如獲取表單數(shù)據(jù)、處理表單數(shù)據(jù)、PHP中的Session和上傳文件等。3.1PHP的Web編程基礎(chǔ)本節(jié)將講述最基本的PHPW23.1.1訪問和獲取HTML表單數(shù)據(jù)在PHP中,可以通過兩個預(yù)定義變量,很方便地獲取HTML表單數(shù)據(jù)。這兩個預(yù)定義變量在前面提及過:$_GET和$_POST。它們都是PHP的自動全局變量,可以直接在PHP程序中使用。變量$_GET是表單數(shù)據(jù)組成的數(shù)組,它由HTTP的GET方法傳遞的表單數(shù)據(jù)組成。表單元素的名稱就是數(shù)組的“索引”。這就是說,通過表單元素的名稱(即name屬性的值),就可以獲得該表單元素的值。例如某表單中,有一個文本輸入框,名稱為“user_name”,那么在PHP程序中,就可以通過$_GET[‘user_name’]獲取文本框中用戶輸入的值。變量$_POST的用法和$_GET類似。通過HTTP的POST方法獲取的表單數(shù)據(jù),都將存放在該變量中,該變量也是一個數(shù)組。3.1.1訪問和獲取HTML表單數(shù)據(jù)在PHP中,可以通過33.1.2用PHP處理表單數(shù)據(jù)在上小節(jié)的文檔3-1.html中,對于表單中的“愛好”多選框,只選擇了“閱讀”一項。如果做了多個選擇,再提交表單,.php輸出的結(jié)果就有所不同。所選擇的3個checkbox,只有最后1個的值被輸出了,其他兩個選項的值沒有被輸出,這并不是所期望的結(jié)果。之所以出現(xiàn)這種情況,是因為多選按鈕元素checkbox的名稱都為“hobby”,而PHP要求,如果表單元素同名,就必須以數(shù)組方式命名,并為其value屬性賦值,這樣PHP才能正確取值。因此,首先修改3-1.html的中表單元素checkbox的名稱,以數(shù)組方式命名checkbox元素,即在原來的名稱“hobby”后加上“[]”,3.1.2用PHP處理表單數(shù)據(jù)在上小節(jié)的文檔3-1.ht43.1.3用PHP驗證表單數(shù)據(jù)有效性在上小節(jié)的文檔3-1.html中,對于表單中的“愛好”多選框,只選擇了“閱讀”一項。如果做了多個選擇,再提交表單,3-2.php輸出的結(jié)果就有所不同。提交表單后,,所選擇的3個checkbox,只有最后1個的值被輸出了,其他兩個選項的值沒有被輸出,這并不是所期望的結(jié)果。之所以出現(xiàn)這種情況,是因為多選按鈕元素checkbox的名稱都為“hobby”,而PHP要求,如果表單元素同名,就必須以數(shù)組方式命名,并為其value屬性賦值,這樣PHP才能正確取值。3.1.3用PHP驗證表單數(shù)據(jù)有效性在上小節(jié)的文檔3-153.1.4PHP中的sessionsession是Web開發(fā)中最常見的概念,也是最常用的功能之一。簡單地說,是session是指用戶進入網(wǎng)站到瀏覽器關(guān)閉的這段時間(或過程)。HTTP是面向無連接(或無狀態(tài))的協(xié)議。這意味著,在HTTP中,一個完整的請求/響應(yīng)過程結(jié)束之后,客戶端(即瀏覽器)和服務(wù)器端的鏈接就已中斷。此時,如果用戶再從當(dāng)前頁面訪問其他頁面,即向服務(wù)器發(fā)出請求,服務(wù)器端并不知道此請求是哪個用戶發(fā)起的,因此也就無法得知用戶的瀏覽狀態(tài)。這樣就遇到一個問題:當(dāng)前頁面中的某個數(shù)據(jù)(或變量),無法在接下來訪問的頁面中使用。而在實際的Web開發(fā)中,經(jīng)常要在頁面之間傳遞數(shù)據(jù),而且不同的訪問用戶,傳遞的數(shù)據(jù)是不同的。雖然解決這個問題的辦法有很多,但通過session解決這個問題,會更加方便、快速、有效。通過session記錄用戶的有關(guān)信息,以供用戶以此身份向服務(wù)器發(fā)起請求時,服務(wù)器能夠根據(jù)session做出正確的判斷,區(qū)分不同用戶的請求。3.1.4PHP中的sessionsession是Web63.1.5PHP中的文件上傳處理在Web開發(fā)中,經(jīng)常會遇到從客戶端上傳文件到服務(wù)器端的問題。通常,文件上傳使用的是HTTP的POST方式,使用POST方式傳遞文件到服務(wù)器端。要完成文件上傳處理,首先要定義HTML表單的enctype屬性為”multipart/form-data”,如下代碼所示。<formenctype=”multipart/form-data”action=”somefile.php”method=”POST”>在PHP程序中,使用全局變量$_FILES處理文件上傳。$_FILES是一個數(shù)組,包含了要上傳的文件的信息。下面,以上述HTML表單為例,介紹$_FILES數(shù)組的內(nèi)容。3.1.5PHP中的文件上傳處理在Web開發(fā)中,經(jīng)常會遇73.1.5PHP中的文件上傳處理$_FILES[‘myfile’][‘name’]表示客戶端文件的原始名稱,即要上傳的文件的文件名。其中myfile就是在代碼3-6中定義的input元素的name屬性的值:<inputname="myfile"type="file"/>。$_FILES[‘myfile’][‘type’]表示上傳文件的類型,例如“image/gif”。$_FILES[‘myfile’][‘size’]表示已上傳文件的大小,單位為字節(jié)。$_FILES[‘myfile’][‘tmp_name’]表示文件上傳后,在服務(wù)器端存儲的臨時文件名。$_FILES[‘myfile’][‘error’]表示和文件上傳的相關(guān)錯誤信息。3.1.5PHP中的文件上傳處理$_FILES[‘myf83.2實例:用PHP開發(fā)一個簡單的網(wǎng)站通過上一小節(jié)對PHP開發(fā)Web應(yīng)用基礎(chǔ)知識的學(xué)習(xí),讀者掌握了使用PHP獲取和處理表單數(shù)據(jù)、用PHP驗證數(shù)據(jù)的有效完整、PHP中session的使用和處理文件上傳等基本技能。本節(jié),將通過一個具體的實例來進一步加強對這些技能的應(yīng)用。本節(jié)還將進一步學(xué)習(xí)界面設(shè)計和布局方面的應(yīng)用。3.2實例:用PHP開發(fā)一個簡單的網(wǎng)站通過上一小節(jié)對PH93.2.1網(wǎng)站功能設(shè)計本節(jié)制作一個簡單數(shù)據(jù)錄入系統(tǒng)。首先用戶提供登錄名和密碼登入系統(tǒng),之后使用session維護用戶狀態(tài)。進入系統(tǒng)后,用戶可以錄入一些個人信息。該系統(tǒng)還應(yīng)該實現(xiàn)對于不同用戶錄入的數(shù)據(jù),有不同的顯示結(jié)果。該系統(tǒng)客戶端使用CSS完成頁面設(shè)計和布局,并且使用JavaScript驗證數(shù)據(jù)是否有效。客戶端使用PHP處理這些數(shù)據(jù),并將數(shù)據(jù)顯示至瀏覽器。3.2.1網(wǎng)站功能設(shè)計本節(jié)制作一個簡單數(shù)據(jù)錄入系統(tǒng)。首先103.2.2頁面設(shè)計初步考慮設(shè)計兩個頁面。一個頁面是用戶登錄界面,另一個是用戶信息的錄入界面。此外還需要PHP程序完成用戶驗證,和負責(zé)獲取表單提交的數(shù)據(jù),并將表單數(shù)據(jù)顯示出來。3.2.2頁面設(shè)計初步考慮設(shè)計兩個頁面。一個頁面是用戶登113.2.3用JavaScript實現(xiàn)客戶端響應(yīng)用JavaScript可以在客戶端驗證數(shù)據(jù)的有效性。在上述登錄頁面中加入一些JavaScript腳本,可以驗證用戶是否輸入了用戶名。其中在<head>標(biāo)簽內(nèi)加入了JavaScript腳本,用以檢驗用戶輸入的用戶名是否為空,如果為空,則向用戶彈出一個提示對話框。此外,該HTML文檔中還加入了CSS代碼,定義了頁面字體的顯示大小、表格單元格背景顏色等頁面效果。3.2.3用JavaScript實現(xiàn)客戶端響應(yīng)用Java123.2.4服務(wù)器端用PHP處理請求當(dāng)用戶輸入了用戶名后,該數(shù)據(jù)將提交至一個PHP程序做處理。服務(wù)器端的PHP處理程序需要顯示用戶剛剛輸入的用戶名,以及一個錄入用戶信息的界面??紤]到不同的用戶錄入的信息都是不同的,因此對于不同的用戶,只能看到自己的錄入信息,所以要在程序中使用session維護不同用戶的狀態(tài)和數(shù)據(jù)。3.2.4服務(wù)器端用PHP處理請求當(dāng)用戶輸入了用戶名后,133.3小結(jié)本章講述了使用PHP進行Web編程的基礎(chǔ)知識和基本技能。包含:用PHP獲取HTML表單數(shù)據(jù)、用PHP處理表單數(shù)據(jù)、用PHP驗證數(shù)據(jù)、PHP中session的使用及使用PHP處理文件的上傳。最后通過一個簡單實例,加深對這些基本技能的實踐和掌握。3.3小結(jié)本章講述了使用PHP進行Web編程的基礎(chǔ)知識和14第3章用PHP進行Web編程PHP是開發(fā)Web應(yīng)用的首選語言之一,也是最佳選擇。PHP本身就是為Web而生的。它提供了一系列可以使Web開發(fā)更加方便、更加容易的功能和特性。本章先介紹用PHP進行Web編程的一些基本用法,了解用PHP進行Web編程的一些特性,接著通過一個簡單的完整實例實踐這些用法和特性,加深對使用PHP進行Web編程的理解和掌握。第3章用PHP進行Web編程PHP是開發(fā)Web應(yīng)用的首選153.1PHP的Web編程基礎(chǔ)本節(jié)將講述最基本的PHPWeb編程知識,諸如獲取表單數(shù)據(jù)、處理表單數(shù)據(jù)、PHP中的Session和上傳文件等。3.1PHP的Web編程基礎(chǔ)本節(jié)將講述最基本的PHPW163.1.1訪問和獲取HTML表單數(shù)據(jù)在PHP中,可以通過兩個預(yù)定義變量,很方便地獲取HTML表單數(shù)據(jù)。這兩個預(yù)定義變量在前面提及過:$_GET和$_POST。它們都是PHP的自動全局變量,可以直接在PHP程序中使用。變量$_GET是表單數(shù)據(jù)組成的數(shù)組,它由HTTP的GET方法傳遞的表單數(shù)據(jù)組成。表單元素的名稱就是數(shù)組的“索引”。這就是說,通過表單元素的名稱(即name屬性的值),就可以獲得該表單元素的值。例如某表單中,有一個文本輸入框,名稱為“user_name”,那么在PHP程序中,就可以通過$_GET[‘user_name’]獲取文本框中用戶輸入的值。變量$_POST的用法和$_GET類似。通過HTTP的POST方法獲取的表單數(shù)據(jù),都將存放在該變量中,該變量也是一個數(shù)組。3.1.1訪問和獲取HTML表單數(shù)據(jù)在PHP中,可以通過173.1.2用PHP處理表單數(shù)據(jù)在上小節(jié)的文檔3-1.html中,對于表單中的“愛好”多選框,只選擇了“閱讀”一項。如果做了多個選擇,再提交表單,.php輸出的結(jié)果就有所不同。所選擇的3個checkbox,只有最后1個的值被輸出了,其他兩個選項的值沒有被輸出,這并不是所期望的結(jié)果。之所以出現(xiàn)這種情況,是因為多選按鈕元素checkbox的名稱都為“hobby”,而PHP要求,如果表單元素同名,就必須以數(shù)組方式命名,并為其value屬性賦值,這樣PHP才能正確取值。因此,首先修改3-1.html的中表單元素checkbox的名稱,以數(shù)組方式命名checkbox元素,即在原來的名稱“hobby”后加上“[]”,3.1.2用PHP處理表單數(shù)據(jù)在上小節(jié)的文檔3-1.ht183.1.3用PHP驗證表單數(shù)據(jù)有效性在上小節(jié)的文檔3-1.html中,對于表單中的“愛好”多選框,只選擇了“閱讀”一項。如果做了多個選擇,再提交表單,3-2.php輸出的結(jié)果就有所不同。提交表單后,,所選擇的3個checkbox,只有最后1個的值被輸出了,其他兩個選項的值沒有被輸出,這并不是所期望的結(jié)果。之所以出現(xiàn)這種情況,是因為多選按鈕元素checkbox的名稱都為“hobby”,而PHP要求,如果表單元素同名,就必須以數(shù)組方式命名,并為其value屬性賦值,這樣PHP才能正確取值。3.1.3用PHP驗證表單數(shù)據(jù)有效性在上小節(jié)的文檔3-1193.1.4PHP中的sessionsession是Web開發(fā)中最常見的概念,也是最常用的功能之一。簡單地說,是session是指用戶進入網(wǎng)站到瀏覽器關(guān)閉的這段時間(或過程)。HTTP是面向無連接(或無狀態(tài))的協(xié)議。這意味著,在HTTP中,一個完整的請求/響應(yīng)過程結(jié)束之后,客戶端(即瀏覽器)和服務(wù)器端的鏈接就已中斷。此時,如果用戶再從當(dāng)前頁面訪問其他頁面,即向服務(wù)器發(fā)出請求,服務(wù)器端并不知道此請求是哪個用戶發(fā)起的,因此也就無法得知用戶的瀏覽狀態(tài)。這樣就遇到一個問題:當(dāng)前頁面中的某個數(shù)據(jù)(或變量),無法在接下來訪問的頁面中使用。而在實際的Web開發(fā)中,經(jīng)常要在頁面之間傳遞數(shù)據(jù),而且不同的訪問用戶,傳遞的數(shù)據(jù)是不同的。雖然解決這個問題的辦法有很多,但通過session解決這個問題,會更加方便、快速、有效。通過session記錄用戶的有關(guān)信息,以供用戶以此身份向服務(wù)器發(fā)起請求時,服務(wù)器能夠根據(jù)session做出正確的判斷,區(qū)分不同用戶的請求。3.1.4PHP中的sessionsession是Web203.1.5PHP中的文件上傳處理在Web開發(fā)中,經(jīng)常會遇到從客戶端上傳文件到服務(wù)器端的問題。通常,文件上傳使用的是HTTP的POST方式,使用POST方式傳遞文件到服務(wù)器端。要完成文件上傳處理,首先要定義HTML表單的enctype屬性為”multipart/form-data”,如下代碼所示。<formenctype=”multipart/form-data”action=”somefile.php”method=”POST”>在PHP程序中,使用全局變量$_FILES處理文件上傳。$_FILES是一個數(shù)組,包含了要上傳的文件的信息。下面,以上述HTML表單為例,介紹$_FILES數(shù)組的內(nèi)容。3.1.5PHP中的文件上傳處理在Web開發(fā)中,經(jīng)常會遇213.1.5PHP中的文件上傳處理$_FILES[‘myfile’][‘name’]表示客戶端文件的原始名稱,即要上傳的文件的文件名。其中myfile就是在代碼3-6中定義的input元素的name屬性的值:<inputname="myfile"type="file"/>。$_FILES[‘myfile’][‘type’]表示上傳文件的類型,例如“image/gif”。$_FILES[‘myfile’][‘size’]表示已上傳文件的大小,單位為字節(jié)。$_FILES[‘myfile’][‘tmp_name’]表示文件上傳后,在服務(wù)器端存儲的臨時文件名。$_FILES[‘myfile’][‘error’]表示和文件上傳的相關(guān)錯誤信息。3.1.5PHP中的文件上傳處理$_FILES[‘myf223.2實例:用PHP開發(fā)一個簡單的網(wǎng)站通過上一小節(jié)對PHP開發(fā)Web應(yīng)用基礎(chǔ)知識的學(xué)習(xí),讀者掌握了使用PHP獲取和處理表單數(shù)據(jù)、用PHP驗證數(shù)據(jù)的有效完整、PHP中session的使用和處理文件上傳等基本技能。本節(jié),將通過一個具體的實例來進一步加強對這些技能的應(yīng)用。本節(jié)還將進一步學(xué)習(xí)界面設(shè)計和布局方面的應(yīng)用。3.2實例:用PHP開發(fā)一個簡單的網(wǎng)站通過上一小節(jié)對PH233.2.1網(wǎng)站功能設(shè)計本節(jié)制作一個簡單數(shù)據(jù)錄入系統(tǒng)。首先用戶提供登錄名和密碼登入系統(tǒng),之后使用session維護用戶狀態(tài)。進入系統(tǒng)后,用戶可以錄入一些個人信息。該系統(tǒng)還應(yīng)該實現(xiàn)對于不同用戶錄入的數(shù)據(jù),有不同的顯示結(jié)果。該系統(tǒng)客戶端使用CSS完成頁面設(shè)計和布局,并且使用JavaScript驗證數(shù)據(jù)是否有效??蛻舳耸褂肞HP處理這些數(shù)據(jù),并將數(shù)據(jù)顯示至瀏覽器。3.2.1網(wǎng)站功能設(shè)計本節(jié)制作一個簡單數(shù)據(jù)錄入系統(tǒng)。首先2
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度攝影師與攝影棚運營方居間合同2篇
- 二零二五版社區(qū)配送訂餐服務(wù)合同范本與社區(qū)管理協(xié)議3篇
- 二零二五年度酒店地毯綠色生產(chǎn)與環(huán)保認證合同3篇
- 二零二五年新能源充電樁建設(shè)運營合同樣本3篇
- 二零二五版高端住宅項目全程代理銷售合同3篇
- 二零二五版基因合成與生物技術(shù)知識產(chǎn)權(quán)轉(zhuǎn)讓合同3篇
- 二零二五版10月大型設(shè)備運輸委托合同2篇
- 二零二五版廣西事業(yè)單位聘用示范性合同模板12篇
- 2025年度出口貨物環(huán)保認證服務(wù)合同3篇
- 二零二五年度膩子材料國際貿(mào)易代理合同2篇
- 常見老年慢性病防治與護理課件整理
- 履約情況證明(共6篇)
- 云南省迪慶藏族自治州各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細
- 設(shè)備機房出入登記表
- 六年級語文-文言文閱讀訓(xùn)練題50篇-含答案
- 醫(yī)用冰箱溫度登記表
- 零售學(xué)(第二版)第01章零售導(dǎo)論
- 大學(xué)植物生理學(xué)經(jīng)典05植物光合作用
- 口袋妖怪白金光圖文攻略2周目
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 三年級下冊生字組詞(帶拼音)
評論
0/150
提交評論