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