HP編程基礎(chǔ)與實(shí)例教程.ppt
《HP編程基礎(chǔ)與實(shí)例教程.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《HP編程基礎(chǔ)與實(shí)例教程.ppt(30頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
PHP編程基礎(chǔ)與實(shí)例教程PHPFundamentals Practices 第6章PHP的數(shù)據(jù)采集 主講 孔祥盛 本章大綱 6 1瀏覽器端數(shù)據(jù)的提交方式6 2相對(duì)路徑和絕對(duì)路徑6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集6 4使用 GET和 POST 采集 表單數(shù)據(jù)6 5上傳文件的 數(shù)據(jù)采集 6 6WEB服務(wù)器端其它數(shù)據(jù)采集方法 6 1瀏覽器端數(shù)據(jù)的提交方式 1 GET提交方式GET提交方式是將 請(qǐng)求 數(shù)據(jù)以查詢字符串 QueryString 格式附在URL之后 提交 數(shù)據(jù) 例如 http localhost 2 register php userName victor password 1234 confirmPassword 1234 在這個(gè)URL中 問號(hào) 表示查詢字符串的開始 問號(hào) 后面的字符串參數(shù) userName victor password 1234 confirmPassword 1234 為查詢字符串 可以看出 查詢字符串可以包含多個(gè)參數(shù) 每個(gè)參數(shù)以 參數(shù)名 參數(shù)值 的格式定義 參數(shù)之間使用 相連 最后再將查詢字符串使用 附在URL之后 另外 FORM表單也提供了GET提交方式 除此以外 使用超鏈接標(biāo)簽也可以實(shí)現(xiàn)瀏覽器端GET提交方式 6 1瀏覽器端數(shù)據(jù)的提交方式 2 POST提交方式POST數(shù)據(jù)提交方式一般通過FORM表單實(shí)現(xiàn) 由于默認(rèn)情況下FORM表單的數(shù)據(jù)提交方式為GET方式 必須在FORM表單的標(biāo)簽中加入屬性 method post 將數(shù)據(jù)提交方式修改為POST方式 6 1瀏覽器端數(shù)據(jù)的提交方式 3 GET和POST混合提交方式還可以使用FORM表單實(shí)現(xiàn)GET和POST混合提交方式 即向WEB服務(wù)器某PHP程序發(fā)出 GET請(qǐng)求 的同時(shí) 還向該P(yáng)HP程序發(fā)出 POST請(qǐng)求 6 1瀏覽器端數(shù)據(jù)的提交方式 4 兩種提交方式的比較 POST提交方式比GET提交方式安全 這是由于GET提交方式提交的數(shù)據(jù)將出現(xiàn)在URL查詢字符串中 并且這些帶有查詢字符串的URL可以被瀏覽器緩存到歷史記錄中 因此諸如用戶注冊(cè) 登錄等系統(tǒng) 不建議使用GET提交方式 POST提交方式可以提交更多的數(shù)據(jù) 理論上講POST提交方式提交的數(shù)據(jù)沒有大小限制 而GET提交方式提交的數(shù)據(jù)由于出現(xiàn)在URL查詢字符串中 而URL的長(zhǎng)度是受限制的 例如IE瀏覽器對(duì)URL長(zhǎng)度的限制是2083字節(jié) 例如 新聞發(fā)布系統(tǒng)中提交篇幅較長(zhǎng)的新聞信息時(shí) 不建議使用GET提交方式 帶有文件上傳功能的FORM表單則必須使用POST提交方式 不同的 提交 方式對(duì)應(yīng)的服務(wù)器端數(shù)據(jù) 采集 方式不同 6 2相對(duì)路徑和絕對(duì)路徑 1 絕對(duì)路徑絕對(duì)路徑是與相對(duì)路徑相對(duì)立的 通常是一個(gè)完整的URL 該URL由兩個(gè)部分構(gòu)成 scheme 用來描述尋找數(shù)據(jù)所采用的機(jī)制 即 協(xié)議 如http協(xié)議和ftp協(xié)議等 位置 Location 用來描述到哪兒去尋找數(shù)據(jù)的資源這兩部分使用 分隔 例如 6 2相對(duì)路徑和絕對(duì)路徑 2 相對(duì)路徑相對(duì)路徑可以分為兩類 server relative路徑與page relative路徑 server relative路徑是以斜杠 開頭的相對(duì)路徑 在HTML中 以斜杠 開頭的相對(duì)路徑表示從WEB服務(wù)器的根目錄下開始查找相應(yīng)的資源文件 使用默認(rèn)配置安裝WAMP后 目錄 C wamp www 為Apache服務(wù)器的根目錄 因此使用相對(duì)路徑 index php 訪問資源時(shí) 訪問的是目錄 C wamp www 下的index php頁面 使用相對(duì)路徑 6 register html 訪問資源時(shí) 訪問的是目錄 C wamp www 中的目錄 6 下的register html文件 6 2相對(duì)路徑和絕對(duì)路徑 2 相對(duì)路徑page relative路徑不以斜杠開頭 此時(shí)當(dāng)文件1訪問文件2 HTML頁面 PHP程序或圖片等 資源時(shí) 將從文件1的當(dāng)前目錄作為起點(diǎn)查找文件2資源 例如當(dāng)目錄 C wamp www 6 中的register html文件使用超鏈接訪問該目錄下的register php文件時(shí) 只需在register html文件的超鏈接中直接指定register php文件即可 6 2相對(duì)路徑和絕對(duì)路徑 3 相對(duì)路徑其它概念1 同一個(gè)目錄下的資源訪問如果文件1和文件2在同一個(gè)目錄 這兩個(gè)文件間的相互訪問直接使用文件名即可 2 如何表示當(dāng)前目錄 表示文件的當(dāng)前目錄 3 如何表示上級(jí)目錄 表示文件所在目錄的上一級(jí)目錄 表示文件所在目錄的上上級(jí)目錄 以此類推 4 如何表示下級(jí)目錄如果文件1訪問下級(jí)目錄中的文件2 直接指定該目錄和文件2的文件名即可 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 0 預(yù)備FORM表單由三部分組成 表單標(biāo)簽 定義了表單處理程序及數(shù)據(jù)提交方式等信息 表單控件 包括單行文本框 密碼框 隱藏域 多行文本框 復(fù)選框 單選框 下拉選擇框和文件上傳框等表單控件 表單按鈕 包括提交按鈕 復(fù)位按鈕和一般按鈕 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 1 表單標(biāo)簽表單標(biāo)簽常用的屬性有action method enctype title name等 1 action屬性設(shè)置當(dāng)前表單數(shù)據(jù) 提交 的目的地址 當(dāng)不設(shè)置action屬性 或設(shè)置值等于空字符串 即action 時(shí) 表單數(shù)據(jù)提交給當(dāng)前頁面 2 method屬性設(shè)置表單數(shù)據(jù)的提交方式 method屬性的值為GET或POST 默認(rèn)為GET 3 title屬性設(shè)置表單的提示信息 當(dāng)用戶的鼠標(biāo)在表單處停留時(shí) 瀏覽器用一個(gè)黃色的小浮標(biāo)顯示提示文本 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 1 表單標(biāo)簽4 enctype屬性設(shè)置提交表單數(shù)據(jù)時(shí)的編碼方式 enctype屬性的值為multipart form data或application x www form urlencoded 默認(rèn)為 application x www form urlencoded 當(dāng)一個(gè)FORM表單中存在文件上傳框時(shí) 必須將enctype屬性設(shè)置為multipart form data編碼方式 5 name屬性為當(dāng)前的FORM表單命名 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 2 表單控件1 單行文本框2 密碼框3 多行文本框4 隱藏域5 復(fù)選框6 單選框7 文件上傳框8 下拉選擇框 注意 表單控件嵌套在FORM表單中才有意義 且每個(gè)表單控件都要用一個(gè)name屬性進(jìn)行標(biāo)識(shí) 這是因?yàn)閃EB服務(wù)器將依據(jù)表單控件的name屬性判斷傳遞給服務(wù)器的每個(gè)值分別是由哪個(gè)表單控件產(chǎn)生 為了確保數(shù)據(jù)的準(zhǔn)確采集 需要為每個(gè)表單控件定義一個(gè)獨(dú)一無二的名稱 同為一個(gè)組的單選框以及在表單控件中使用數(shù)組兩種情況除外 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 3 在表單控件中使用數(shù)組在一個(gè)HTML頁面中 有時(shí)并不清楚某種表單控件的具體個(gè)數(shù) 例如 在進(jìn)行多文件上傳時(shí) 并不能確定瀏覽器用戶究竟選擇多少個(gè)上傳文件 更無法確定頁面中需要多少個(gè)文件上傳框 在表單控件中使用數(shù)組可以解決類似的問題 在表單控件的name屬性值后面加上方括號(hào) 從而實(shí)現(xiàn)在表單控件中使用數(shù)組 使用表單控件數(shù)組后 當(dāng)表單提交時(shí) 相同name屬性的表單控件則以數(shù)組的方式向WEB服務(wù)器提交多個(gè)數(shù)據(jù) 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 4 表單按鈕1 提交按鈕2 圖像提交按鈕3 重置按鈕4 自定義按鈕 6 3使用FORM表單實(shí)現(xiàn)瀏覽器端的數(shù)據(jù)采集 5 FORM表單綜合應(yīng)用 用戶名 登錄密碼 確認(rèn)密碼 選擇性別 男女個(gè)人愛好 音樂游戲電影個(gè)人相片 備注信息 請(qǐng)?zhí)顚憘渥⑿畔⑻峤话粹o 圖片按鈕 重置按鈕 6 4使用 GET和 POST 采集 表單數(shù)據(jù) 當(dāng)瀏覽器向WEB服務(wù)器某PHP程序提交數(shù)據(jù)后 該P(yáng)HP程序應(yīng)該根據(jù)其 提交 方式?jīng)Q定使用何種數(shù)據(jù) 采集 方法 當(dāng)瀏覽器以GET方式提交的數(shù)據(jù)時(shí) 服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量 GET 采集 提交數(shù)據(jù) 當(dāng)瀏覽器以POST方式提交的數(shù)據(jù)時(shí) 服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量 POST 采集 提交數(shù)據(jù) 當(dāng)以POST方式提交的請(qǐng)求數(shù)據(jù)中包含上傳文件時(shí) 服務(wù)器端PHP程序應(yīng)當(dāng)使用預(yù)定義變量 FILES 采集 上傳文件 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關(guān)的配置下面的配置選項(xiàng)保存在php ini配置文件中 可以適當(dāng)?shù)男薷倪@些的配置選項(xiàng)滿足特定的文件上傳需要 file uploads 配置了是否允許通過HTTP協(xié)議上傳文件 默認(rèn)值為On 表示PHP預(yù)處理器支持文件上傳功能 典型配置示例 file uploads Onpost max size 使用POST提交方式提交表單數(shù)據(jù)時(shí) post max size選項(xiàng)配置了PHP預(yù)處理器能夠接受的最大表單數(shù)據(jù)大小 默認(rèn)值為8M 表示表單中所有數(shù)據(jù) 包括上傳文件 大小之和必須小于8M字節(jié) 否則PHP程序?qū)⒉荒懿杉饺魏蔚谋韱螖?shù)據(jù) 即當(dāng)表單數(shù)據(jù)大小大于post max size選項(xiàng)定義的值時(shí) 提交表單后 GET POST和 FILES將為空數(shù)組 典型配置示例 post max size 8M 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關(guān)的配置upload max filesize 配置了當(dāng)前表單中文件上傳框允許上傳文件的最大值 默認(rèn)值為2M 當(dāng)表單中有多個(gè)文件上傳框時(shí) 可以使用upload max filesize選項(xiàng)限制每個(gè)上傳文件的大小 即若表單有多個(gè)文件上傳框時(shí) 文件大小不超過upload max filesize選項(xiàng)定義的上傳框?qū)⑸蟼鞒晒?文件大小超過upload max filesize選項(xiàng)定義的上傳框?qū)⑸蟼魇?上傳框之間互不影響上傳結(jié)果 典型配置示例 upload max filesize 2M 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關(guān)的配置upload tmp dir 配置了PHP上傳文件的過程中產(chǎn)生臨時(shí)文件 默認(rèn)擴(kuò)展名為tmp 的目錄 默認(rèn)值為 c wamp tmp 表示臨時(shí)文件存放在目錄c wamp tmp中 典型配置示例 upload tmp dir c wamp tmp 配置好上面四個(gè)參數(shù)后 在網(wǎng)絡(luò)正常的情況下 上傳小于8M的文件一般不會(huì)出現(xiàn)問題 但如果要上傳 大 文件 或者網(wǎng)速較慢 只進(jìn)行上面的配置未必行得通 此時(shí)還需進(jìn)行下面的配置 max input time 配置單個(gè)PHP程序解析提交數(shù)據(jù) 以POST或GET方式 的最大允許時(shí)間 單位是秒 默認(rèn)值為60 當(dāng)設(shè)置為 1表示不限制 典型配置示例 max input time 60 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關(guān)的配置memory limit 配置單個(gè)PHP程序在服務(wù)器主機(jī)運(yùn)行時(shí) 可以占用服務(wù)器最大內(nèi)存數(shù) 默認(rèn)值為128M 當(dāng)設(shè)置為 1表示為不限制 典型配置示例 memory limit 128Mmax execution time 配置單個(gè)PHP程序在服務(wù)器端運(yùn)行時(shí)占用服務(wù)器的最大時(shí)間 單位是秒 默認(rèn)值為30 配置該選項(xiàng)可以有效避免死循環(huán)或大文件上傳等程序長(zhǎng)期占用服務(wù)器CPU導(dǎo)致服務(wù)器崩潰 如果設(shè)置值為0表示不限制運(yùn)行時(shí)間 典型配置示例 max execution time 30 在PHP程序中使用set time limit 函數(shù)也可以設(shè)置該選項(xiàng) 例如 set time limit 0 6 5上傳文件的 數(shù)據(jù)采集 2 PHP文件上傳流程 6 5上傳文件的 數(shù)據(jù)采集 3 預(yù)定義變量 FILES使用預(yù)定義變量 FILES可以獲取上傳文件的相關(guān)信息 FILES是一個(gè)二維數(shù)組 例如可以在程序register php中使用如下方法得到register html表單中 個(gè)人相片 上傳文件的相關(guān)信息 FILES myPicture name 上傳文件的文件名 FILES myPicture type 上傳文件的MIME類型 FILES myPicture size 上傳文件的大小 單位為字節(jié) FILES myPicture tmp name 與上傳文件相對(duì)應(yīng)的服務(wù)器端的臨時(shí)文件名 FILES myPicture error 文件上傳的狀態(tài)代碼 6 5上傳文件的 數(shù)據(jù)采集 4 預(yù)定義變量 FILES說明 MIME類型就是設(shè)定某種擴(kuò)展名的文件用一種應(yīng)用程序來打開的方式類型 當(dāng)該擴(kuò)展名文件被訪問的時(shí)候 瀏覽器會(huì)自動(dòng)使用指定應(yīng)用程序來打開 例如GIF圖片的MIME類型為 image gif FILES myPicture error 的取值及對(duì)應(yīng)的意義為 0 沒有錯(cuò)誤發(fā)生 文件上傳成功 1 上傳的文件超過了php ini中upload max filesize選項(xiàng)限制的值 2 上傳文件的大小超過了FORM表單中MAX FILE SIZE參數(shù)指定的值 3 文件只有部分被上傳 4 表單沒有選擇上傳文件 6 5上傳文件的 數(shù)據(jù)采集 5 PHP文件上傳的實(shí)現(xiàn)PHP提供了兩個(gè)上傳相關(guān)的函數(shù) is uploaded file和move uploaded file函數(shù) 1 is uploaded file 函數(shù)語法格式 boolis uploaded file stringfileName 函數(shù)功能 is uploaded file 函數(shù)用于判斷文件名為fileName的文件是否為上傳過程中產(chǎn)生的臨時(shí)文件 例如 is uploaded file FILES myPicture tmp name 的返回值為TRUE 6 5上傳文件的 數(shù)據(jù)采集 5 PHP文件上傳的實(shí)現(xiàn)2 move uploaded file 函數(shù)語法格式 boolmove uploaded file stringfileName stringdestination 函數(shù)功能 move uploaded file 函數(shù)用于將上傳過程中文件名為fileName的臨時(shí)文件移動(dòng)到指定目錄destination中 確保文件的成功上傳 如果fileName不是合法的臨時(shí)文件 不會(huì)出現(xiàn)任何操作 move uploaded file 函數(shù)將返回FALSE 說明 如果目標(biāo)文件destination已經(jīng)存在 目標(biāo)文件destination將會(huì)被覆蓋 6 6WEB服務(wù)器端其它數(shù)據(jù)采集方法 1 預(yù)定義變量 REQUEST使用預(yù)定義變量 REQUEST即可以采集GET方式提交的URL查詢字符串中的參數(shù)信息 也可以采集FORM表單POST方式提交的參數(shù)信息 以前程序中所有使用 GET或 POST采集的參數(shù)信息都可以替換成使用 REQUEST采集 即 REQUEST array merge GET POST 需要注意的是 使用GET和POST混合方式提交數(shù)據(jù)時(shí) 若一個(gè)參數(shù)名既存在于GET請(qǐng)求中又存在于POST請(qǐng)求中 使用 REQUEST采集該參數(shù)名對(duì)應(yīng)的參數(shù)值時(shí) 將造成數(shù)據(jù)的丟失 6 6WEB服務(wù)器端其它數(shù)據(jù)采集方法 2 預(yù)定義變量 SERVER使用預(yù)定義變量 SERVER可以得到瀏覽器端和服務(wù)器端主機(jī)的一些相關(guān)信息 例如 SERVER REMOTE ADDR 定義了瀏覽器端主機(jī)的IP地址 SERVER SERVER ADDR 定義了服務(wù)器主機(jī)的IP地址 SERVER PHP SELF 定義了當(dāng)前執(zhí)行程序的文件名 SERVER QUERY STRING 定義了URL的查詢字符串 SERVER DOCUMENT ROOT 定義了WEB服務(wù)器主目錄 SERVER REQUEST URI 定義了除域名外的其余URL部分- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- HP 編程 基礎(chǔ) 實(shí)例教程
鏈接地址:http://www.3dchina-expo.com/p-6145277.html