HP編程基礎與實例教程.ppt
《HP編程基礎與實例教程.ppt》由會員分享,可在線閱讀,更多相關《HP編程基礎與實例教程.ppt(30頁珍藏版)》請在裝配圖網(wǎng)上搜索。
PHP編程基礎與實例教程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服務器端其它數(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提交方式 除此以外 使用超鏈接標簽也可以實現(xiàn)瀏覽器端GET提交方式 6 1瀏覽器端數(shù)據(jù)的提交方式 2 POST提交方式POST數(shù)據(jù)提交方式一般通過FORM表單實現(xiàn) 由于默認情況下FORM表單的數(shù)據(jù)提交方式為GET方式 必須在FORM表單的標簽中加入屬性 method post 將數(shù)據(jù)提交方式修改為POST方式 6 1瀏覽器端數(shù)據(jù)的提交方式 3 GET和POST混合提交方式還可以使用FORM表單實現(xiàn)GET和POST混合提交方式 即向WEB服務器某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提交方式 不同的 提交 方式對應的服務器端數(shù)據(jù) 采集 方式不同 6 2相對路徑和絕對路徑 1 絕對路徑絕對路徑是與相對路徑相對立的 通常是一個完整的URL 該URL由兩個部分構成 scheme 用來描述尋找數(shù)據(jù)所采用的機制 即 協(xié)議 如http協(xié)議和ftp協(xié)議等 位置 Location 用來描述到哪兒去尋找數(shù)據(jù)的資源這兩部分使用 分隔 例如 6 2相對路徑和絕對路徑 2 相對路徑相對路徑可以分為兩類 server relative路徑與page relative路徑 server relative路徑是以斜杠 開頭的相對路徑 在HTML中 以斜杠 開頭的相對路徑表示從WEB服務器的根目錄下開始查找相應的資源文件 使用默認配置安裝WAMP后 目錄 C wamp www 為Apache服務器的根目錄 因此使用相對路徑 index php 訪問資源時 訪問的是目錄 C wamp www 下的index php頁面 使用相對路徑 6 register html 訪問資源時 訪問的是目錄 C wamp www 中的目錄 6 下的register html文件 6 2相對路徑和絕對路徑 2 相對路徑page relative路徑不以斜杠開頭 此時當文件1訪問文件2 HTML頁面 PHP程序或圖片等 資源時 將從文件1的當前目錄作為起點查找文件2資源 例如當目錄 C wamp www 6 中的register html文件使用超鏈接訪問該目錄下的register php文件時 只需在register html文件的超鏈接中直接指定register php文件即可 6 2相對路徑和絕對路徑 3 相對路徑其它概念1 同一個目錄下的資源訪問如果文件1和文件2在同一個目錄 這兩個文件間的相互訪問直接使用文件名即可 2 如何表示當前目錄 表示文件的當前目錄 3 如何表示上級目錄 表示文件所在目錄的上一級目錄 表示文件所在目錄的上上級目錄 以此類推 4 如何表示下級目錄如果文件1訪問下級目錄中的文件2 直接指定該目錄和文件2的文件名即可 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 0 預備FORM表單由三部分組成 表單標簽 定義了表單處理程序及數(shù)據(jù)提交方式等信息 表單控件 包括單行文本框 密碼框 隱藏域 多行文本框 復選框 單選框 下拉選擇框和文件上傳框等表單控件 表單按鈕 包括提交按鈕 復位按鈕和一般按鈕 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 1 表單標簽表單標簽常用的屬性有action method enctype title name等 1 action屬性設置當前表單數(shù)據(jù) 提交 的目的地址 當不設置action屬性 或設置值等于空字符串 即action 時 表單數(shù)據(jù)提交給當前頁面 2 method屬性設置表單數(shù)據(jù)的提交方式 method屬性的值為GET或POST 默認為GET 3 title屬性設置表單的提示信息 當用戶的鼠標在表單處停留時 瀏覽器用一個黃色的小浮標顯示提示文本 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 1 表單標簽4 enctype屬性設置提交表單數(shù)據(jù)時的編碼方式 enctype屬性的值為multipart form data或application x www form urlencoded 默認為 application x www form urlencoded 當一個FORM表單中存在文件上傳框時 必須將enctype屬性設置為multipart form data編碼方式 5 name屬性為當前的FORM表單命名 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 2 表單控件1 單行文本框2 密碼框3 多行文本框4 隱藏域5 復選框6 單選框7 文件上傳框8 下拉選擇框 注意 表單控件嵌套在FORM表單中才有意義 且每個表單控件都要用一個name屬性進行標識 這是因為WEB服務器將依據(jù)表單控件的name屬性判斷傳遞給服務器的每個值分別是由哪個表單控件產(chǎn)生 為了確保數(shù)據(jù)的準確采集 需要為每個表單控件定義一個獨一無二的名稱 同為一個組的單選框以及在表單控件中使用數(shù)組兩種情況除外 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 3 在表單控件中使用數(shù)組在一個HTML頁面中 有時并不清楚某種表單控件的具體個數(shù) 例如 在進行多文件上傳時 并不能確定瀏覽器用戶究竟選擇多少個上傳文件 更無法確定頁面中需要多少個文件上傳框 在表單控件中使用數(shù)組可以解決類似的問題 在表單控件的name屬性值后面加上方括號 從而實現(xiàn)在表單控件中使用數(shù)組 使用表單控件數(shù)組后 當表單提交時 相同name屬性的表單控件則以數(shù)組的方式向WEB服務器提交多個數(shù)據(jù) 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 4 表單按鈕1 提交按鈕2 圖像提交按鈕3 重置按鈕4 自定義按鈕 6 3使用FORM表單實現(xiàn)瀏覽器端的數(shù)據(jù)采集 5 FORM表單綜合應用 用戶名 登錄密碼 確認密碼 選擇性別 男女個人愛好 音樂游戲電影個人相片 備注信息 請?zhí)顚憘渥⑿畔⑻峤话粹o 圖片按鈕 重置按鈕 6 4使用 GET和 POST 采集 表單數(shù)據(jù) 當瀏覽器向WEB服務器某PHP程序提交數(shù)據(jù)后 該PHP程序應該根據(jù)其 提交 方式?jīng)Q定使用何種數(shù)據(jù) 采集 方法 當瀏覽器以GET方式提交的數(shù)據(jù)時 服務器端PHP程序應當使用預定義變量 GET 采集 提交數(shù)據(jù) 當瀏覽器以POST方式提交的數(shù)據(jù)時 服務器端PHP程序應當使用預定義變量 POST 采集 提交數(shù)據(jù) 當以POST方式提交的請求數(shù)據(jù)中包含上傳文件時 服務器端PHP程序應當使用預定義變量 FILES 采集 上傳文件 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關的配置下面的配置選項保存在php ini配置文件中 可以適當?shù)男薷倪@些的配置選項滿足特定的文件上傳需要 file uploads 配置了是否允許通過HTTP協(xié)議上傳文件 默認值為On 表示PHP預處理器支持文件上傳功能 典型配置示例 file uploads Onpost max size 使用POST提交方式提交表單數(shù)據(jù)時 post max size選項配置了PHP預處理器能夠接受的最大表單數(shù)據(jù)大小 默認值為8M 表示表單中所有數(shù)據(jù) 包括上傳文件 大小之和必須小于8M字節(jié) 否則PHP程序將不能采集到任何的表單數(shù)據(jù) 即當表單數(shù)據(jù)大小大于post max size選項定義的值時 提交表單后 GET POST和 FILES將為空數(shù)組 典型配置示例 post max size 8M 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關的配置upload max filesize 配置了當前表單中文件上傳框允許上傳文件的最大值 默認值為2M 當表單中有多個文件上傳框時 可以使用upload max filesize選項限制每個上傳文件的大小 即若表單有多個文件上傳框時 文件大小不超過upload max filesize選項定義的上傳框將上傳成功 文件大小超過upload max filesize選項定義的上傳框將上傳失敗 上傳框之間互不影響上傳結果 典型配置示例 upload max filesize 2M 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關的配置upload tmp dir 配置了PHP上傳文件的過程中產(chǎn)生臨時文件 默認擴展名為tmp 的目錄 默認值為 c wamp tmp 表示臨時文件存放在目錄c wamp tmp中 典型配置示例 upload tmp dir c wamp tmp 配置好上面四個參數(shù)后 在網(wǎng)絡正常的情況下 上傳小于8M的文件一般不會出現(xiàn)問題 但如果要上傳 大 文件 或者網(wǎng)速較慢 只進行上面的配置未必行得通 此時還需進行下面的配置 max input time 配置單個PHP程序解析提交數(shù)據(jù) 以POST或GET方式 的最大允許時間 單位是秒 默認值為60 當設置為 1表示不限制 典型配置示例 max input time 60 6 5上傳文件的 數(shù)據(jù)采集 1 與上傳相關的配置memory limit 配置單個PHP程序在服務器主機運行時 可以占用服務器最大內存數(shù) 默認值為128M 當設置為 1表示為不限制 典型配置示例 memory limit 128Mmax execution time 配置單個PHP程序在服務器端運行時占用服務器的最大時間 單位是秒 默認值為30 配置該選項可以有效避免死循環(huán)或大文件上傳等程序長期占用服務器CPU導致服務器崩潰 如果設置值為0表示不限制運行時間 典型配置示例 max execution time 30 在PHP程序中使用set time limit 函數(shù)也可以設置該選項 例如 set time limit 0 6 5上傳文件的 數(shù)據(jù)采集 2 PHP文件上傳流程 6 5上傳文件的 數(shù)據(jù)采集 3 預定義變量 FILES使用預定義變量 FILES可以獲取上傳文件的相關信息 FILES是一個二維數(shù)組 例如可以在程序register php中使用如下方法得到register html表單中 個人相片 上傳文件的相關信息 FILES myPicture name 上傳文件的文件名 FILES myPicture type 上傳文件的MIME類型 FILES myPicture size 上傳文件的大小 單位為字節(jié) FILES myPicture tmp name 與上傳文件相對應的服務器端的臨時文件名 FILES myPicture error 文件上傳的狀態(tài)代碼 6 5上傳文件的 數(shù)據(jù)采集 4 預定義變量 FILES說明 MIME類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型 當該擴展名文件被訪問的時候 瀏覽器會自動使用指定應用程序來打開 例如GIF圖片的MIME類型為 image gif FILES myPicture error 的取值及對應的意義為 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提供了兩個上傳相關的函數(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 說明 如果目標文件destination已經(jīng)存在 目標文件destination將會被覆蓋 6 6WEB服務器端其它數(shù)據(jù)采集方法 1 預定義變量 REQUEST使用預定義變量 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ù)名對應的參數(shù)值時 將造成數(shù)據(jù)的丟失 6 6WEB服務器端其它數(shù)據(jù)采集方法 2 預定義變量 SERVER使用預定義變量 SERVER可以得到瀏覽器端和服務器端主機的一些相關信息 例如 SERVER REMOTE ADDR 定義了瀏覽器端主機的IP地址 SERVER SERVER ADDR 定義了服務器主機的IP地址 SERVER PHP SELF 定義了當前執(zhí)行程序的文件名 SERVER QUERY STRING 定義了URL的查詢字符串 SERVER DOCUMENT ROOT 定義了WEB服務器主目錄 SERVER REQUEST URI 定義了除域名外的其余URL部分- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- HP 編程 基礎 實例教程
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學習交流,未經(jīng)上傳用戶書面授權,請勿作他用。
鏈接地址:http://appdesigncorp.com/p-6145277.html