HP的状态管理与表单处理优秀课件

上传人:鲁** 文档编号:576679602 上传时间:2024-08-20 格式:PPT 页数:51 大小:403.50KB
返回 下载 相关 举报
HP的状态管理与表单处理优秀课件_第1页
第1页 / 共51页
HP的状态管理与表单处理优秀课件_第2页
第2页 / 共51页
HP的状态管理与表单处理优秀课件_第3页
第3页 / 共51页
HP的状态管理与表单处理优秀课件_第4页
第4页 / 共51页
HP的状态管理与表单处理优秀课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《HP的状态管理与表单处理优秀课件》由会员分享,可在线阅读,更多相关《HP的状态管理与表单处理优秀课件(51页珍藏版)》请在金锄头文库上搜索。

1、第9章PHP的狀態管理與表單處理n n9-1 PHP9-1 PHP狀態管理的基礎狀態管理的基礎n n9-2 PHP9-2 PHP的表單處理的表單處理n n9-3 9-3 文字與密碼方塊文字與密碼方塊n n9-4 9-4 n n9-5 9-5 核取方塊核取方塊n n9-6 9-6 下拉式清單方塊下拉式清單方塊n n9-7 9-7 選擇鈕選擇鈕n n9-8 9-8 隱藏欄位隱藏欄位n n9-9 9-9 表單欄位驗證表單欄位驗證HP的状态管理与表单处理优秀课件9-1 PHP狀態管理的基礎n n9-1-1 HTTP通訊協定的特性n n9-1-2 狀態管理的種類HP的状态管理与表单处理优秀课件9-1 P

2、HP狀態管理的基礎n n當PHP程式在伺服端執行時,因為HTTP通訊協定並不會保留客戶端的使用者狀態。n n瀏覽不同的PHP程式時,PHP程式需要將使用者狀態傳遞給下一頁瀏覽的PHP程式,稱為狀態管理(State Management)。HP的状态管理与表单处理优秀课件9-1-1 HTTP通訊協定的特性n nHTTPHTTP通訊協定通訊協定通訊協定通訊協定不會持續保持連線不會持續保持連線不會持續保持連線不會持續保持連線:只有當瀏覽只有當瀏覽程式程式提出請求時才會建立連線提出請求時才會建立連線,在請求後就斷線,在請求後就斷線等待回應,每一次請求和回應都需事先建立連線。等待回應,每一次請求和回應都

3、需事先建立連線。n nHTTPHTTP通訊協定通訊協定通訊協定通訊協定並不會保留狀態並不會保留狀態並不會保留狀態並不會保留狀態:因為因為HTTPHTTP通訊通訊協定並不會保持連線,所以在協定並不會保持連線,所以在連線時,伺服端和連線時,伺服端和客戶端互相知道對方客戶端互相知道對方,一旦請求結束,就互不相,一旦請求結束,就互不相干,使用者狀態並不會保留。干,使用者狀態並不會保留。n nHTTPHTTP通訊協定通訊協定通訊協定通訊協定與資料類型無關與資料類型無關與資料類型無關與資料類型無關:任何種類的資任何種類的資料都可以透過料都可以透過HTTPHTTP通訊協定傳送到客戶端,這就通訊協定傳送到客戶

4、端,這就是是Content-TypeContent-Type標頭資訊標頭資訊指定的指定的MIMEMIME資料類型資料類型。HP的状态管理与表单处理优秀课件9-1-2 狀態管理的種類-說明n n狀態管理(State Management)是在PHP程式間傳遞資料,以便不同PHP程式能夠保留使用者狀態。狀態管理以狀態資訊儲存的位置,可以區分成兩大類:儲存在客戶端儲存在伺服端HP的状态管理与表单处理优秀课件9-1-2 狀態管理的種類-客戶端的狀態管理n n客戶端的狀態管理是將資料儲存在使用者電腦,或是儲存在HTML網頁或PHP程式建立的HTML標籤中,以便將資料傳遞給下一頁PHP程式:HP的状态管理

5、与表单处理优秀课件9-1-2 狀態管理的種類-伺服端的狀態管理n n伺服端的狀態管理是將資料儲存在伺服端的電腦,換句話說,狀態管理的使用者狀態資訊會佔用伺服器的資源:HP的状态管理与表单处理优秀课件9-2 PHP的表單處理與URL參數n n9-2-1 網頁表單的用途n n9-2-2 HTML標籤建立網頁表單n n9-2-3 $_POST與$_GET結合陣列變數n n9-2-4 URL參數傳遞資料HP的状态管理与表单处理优秀课件9-2-1 網頁表單的用途n nPHP程式是在伺服端執行,換句話說,客戶端網頁只負責取得使用者輸入的資料,然後將輸入資料送到伺服端進行處理,使用的是HTML網頁表單:HP

6、的状态管理与表单处理优秀课件9-2-2 HTML標籤建立網頁表單-標籤n n在HTML標籤關於網頁表單的標籤只有五個:HP的状态管理与表单处理优秀课件9-2-2 HTML標籤建立網頁表單-架構 . . HP的状态管理与表单处理优秀课件9-2-2 HTML標籤建立網頁表單-標籤的屬性n nname屬性:表單名稱。n nmethod屬性:設定資料送出方式,如下:form name=order method=postn naction屬性:設定PHP表單處理程式所在的路徑,也可以是URL網址:form name=order method=post action=Ch9-3-2.phpn nencty

7、pe屬性:設定表單資料傳送時的編碼方式。HP的状态管理与表单处理优秀课件9-2-3 $_POST與$_GET結合陣列變數-說明n nPHPPHP的表單處理是使用的表單處理是使用PHPPHP的的預定變數預定變數(Predefined VariablesPredefined Variables)取得欄位資料,預定取得欄位資料,預定變數不同於使用者宣告的變數,屬於變數不同於使用者宣告的變數,屬於PHPPHP引擎建引擎建立的變數立的變數。n nPHPPHP關於表單處理的預定變數是一種預設擁有關於表單處理的預定變數是一種預設擁有全全域變數域變數範圍的範圍的結合陣列變數結合陣列變數,一共有,一共有2 2個

8、:個:HP的状态管理与表单处理优秀课件9-2-3 $_POST與$_GET結合陣列變數-範例n n例如:網頁表單擁有名為Username的欄位,在PHP程式碼可以使用上表的預定變數取得欄位值:$name = $name = $_POST$_POSTUsername;Username;$name = $name = $_GET$_GETUsername;Username;n n上述程式碼可以取得結合陣列的元素值,即欄位輸入的內容。HP的状态管理与表单处理优秀课件9-2-3 $_POST與$_GET結合陣列變數-使用n nPHP程式碼到底是使用$_POST或$_GET變數,需視HTML表單標籤的m

9、ethod屬性值而定:HP的状态管理与表单处理优秀课件9-2-4 URL參數傳遞資料-標籤n nPHP除了可以使用本章後的表單來傳遞資料外,還可以使用超連結URL參數或是header()函數(詳見第10章的說明)轉址傳送資料給其他PHP程式:登入網站HP的状态管理与表单处理优秀课件9-2-4 URL參數傳遞資料-取得參數值n nPHP程式取得超連結傳遞參數如同表單的get方法,可以使用$_GET陣列變數取得參數或欄位值:$username = $_GETUsername;$pass = $_GETPassword;HP的状态管理与表单处理优秀课件9-3 文字與密碼方塊n n9-3-1 文字與密

10、碼方塊欄位n n9-3-2 取得文字與密碼方塊欄位的內容HP的状态管理与表单处理优秀课件9-3-1 文字與密碼方塊欄位-語法n n文字和密碼方塊都可以輸入一段文字內容,唯一的差別在於密碼欄位輸入的資料並不會顯示出來,而是使用小圓點或*星號代替:n nHP的状态管理与表单处理优秀课件9-3-1 文字與密碼方塊欄位-屬性n n語法的屬性說明,如下表所示:HP的状态管理与表单处理优秀课件9-3-2 取得文字與密碼方塊欄位的內容n n在建立好文字與密碼方塊的HTML表單後,我們就可以撰寫PHP程式取得欄位內容。文字與密碼欄位是直接將輸入資料傳到伺服器,PHP程式只需使用$_POST結合陣列變數就可以取

11、得欄位內容:$username = $_POSTUser;$password = $_POSTPass;n n上述程式碼的陣列鍵值是表單欄位的名稱屬性name,:User文字方塊和Pass密碼方塊的內容。HP的状态管理与表单处理优秀课件9-4 文字區域n n9-4-1 文字區域欄位n n9-4-2 取得文字區域欄位的內容HP的状态管理与表单处理优秀课件9-4-1 文字區域欄位-語法n n當需要輸入整個段落或整篇文字時,我們就可以在表單使用文字區域欄位,其基本語法如下所示:textareavalue=String/textareaHP的状态管理与表单处理优秀课件9-4-1 文字區域欄位-屬性n

12、n語法的屬性說明,如下表所示:HP的状态管理与表单处理优秀课件9-4-2 取得文字區域欄位的內容n n在建立文字區域欄位的HTML表單後,就可以撰寫PHP程式取得欄位內容:$msg = $_POSTMessage;print 意見:.nl2br($msg).;n n上述程式碼取得名為Message文字區域的內容,因為HTML標籤顯示欄位內容時,並不會顯示換行,所以呼叫nl2br()函數將換行符號n替換成換行標籤。HP的状态管理与表单处理优秀课件9-5 核取方塊n n9-5-1 核取方塊欄位n n9-5-2 取得核取方塊欄位的內容HP的状态管理与表单处理优秀课件9-5-1 核取方塊欄位-語法n

13、n表單欄位的核取方塊如同一個開關,可以勾選或取消勾選來設定是否使用此功能:input type=checkbox name=Name checked value=StringHP的状态管理与表单处理优秀课件9-5-1 核取方塊欄位-屬性n n語法的屬性說明:HP的状态管理与表单处理优秀课件9-5-2 取得核取方塊欄位的內容n n核取方塊在表單扮演的角色是一個開關,核取方塊在表單扮演的角色是一個開關,PHPPHP程程式取得核取方塊欄位內容是使用式取得核取方塊欄位內容是使用isset()isset()檢查欄位檢查欄位是否勾選是否勾選,傳回值是欄位的,傳回值是欄位的valuevalue屬性值:屬性值

14、:if (if (issetisset($_POSTie)($_POSTie) print print 使用使用Internet Explorer;Internet Explorer;n nif if條件檢查條件檢查ieie核取方塊是否被勾選,如果核取方塊是否被勾選,如果isset()isset()傳回傳回truetrue,就表示使用者,就表示使用者勾選勾選核取方塊。核取方塊。HP的状态管理与表单处理优秀课件9-6 下拉式清單方塊n n9-6-1 下拉式清單方塊欄位n n9-6-2 取得下拉式清單方塊欄位的內容n n9-6-3 取得清單方塊欄位的內容HP的状态管理与表单处理优秀课件9-6-1

15、下拉式清單方塊欄位-種類n n下拉式清單方塊:下拉式清單方塊:當size屬性值為1時只顯示一個選項,需要按右邊鈕才能顯示其他選項:n n清單方塊:清單方塊:和下拉式清單方塊一樣,只不過顯示的選項不只一個,size屬性為顯示的選項數,如果選項太多超過清單方塊尺寸,視窗就會出現捲動軸幫助檢視選項:HP的状态管理与表单处理优秀课件9-6-1 下拉式清單方塊欄位-語法n nHTMLHTML的的標籤需要配合標籤需要配合標籤標籤的選項,才能建立下拉式清單方塊欄位:的選項,才能建立下拉式清單方塊欄位:size=number value=Item_Name選項名稱選項名稱 value=Item_Name se

16、lected選項名稱選項名稱 . ./HP的状态管理与表单处理优秀课件9-6-1 下拉式清單方塊欄位-屬性n n標籤的屬性說明:n n標籤的屬性說明,如下表所示:HP的状态管理与表单处理优秀课件9-6-2 取得下拉式清單方塊欄位的內容n n下拉式清單方塊欄位會將選項標籤屬性value的值傳送到伺服器,在PHP程式是使用$_POST結合陣列取得欄位內容:$gender = $gender = $_POST$_POSTGender;Gender;n n上n n述程式碼取得下拉式清單方塊Gender的值,此值就是使用者選擇選項的value屬性值。HP的状态管理与表单处理优秀课件9-6-3 取得清單方

17、塊欄位的內容-標籤n n清單方塊如果是清單方塊如果是單選單選,PHPPHP處理程式取得選擇的處理程式取得選擇的方式和下拉式清單方塊相同方式和下拉式清單方塊相同,如果是,如果是複選複選的清單的清單方塊欄位,方塊欄位,HTMLHTML表單標籤的欄位名稱是表單標籤的欄位名稱是一個陣一個陣列:列:select multiple n n上述上述標籤的標籤的namename屬性為屬性為WebsWebs,表,表示示PHPPHP取得的欄位值是一個取得的欄位值是一個陣列陣列,接著我們可以,接著我們可以使用使用if if或或switchswitch條件敘述來條件敘述來判斷使用者的選擇判斷使用者的選擇。HP的状态管

18、理与表单处理优秀课件9-6-3 取得清單方塊欄位的內容-取得欄位內容n n在PHP程式一樣是使用$_POST取得欄位內容,只不過取得的欄位內容是一個陣列:$webs = $_POSTWebs;n n上述程式碼取得清單方塊欄位Webs的陣列值,可以使用foreach迴圈配合switch條件進一步判斷使用者複選的選項。HP的状态管理与表单处理优秀课件9-7 選擇鈕n n9-7-1 選擇鈕欄位n n9-7-2 取得選擇鈕欄位的內容HP的状态管理与表单处理优秀课件9-7-1 選擇鈕欄位-語法n n選擇鈕能夠在表單設計一組選項,每一個選項名稱旁有一個圓形的選項鈕,屬於多選一的單選題:HP的状态管理与表单

19、处理优秀课件9-7-1 選擇鈕欄位-屬性n n語法的屬性說明,如下表所示:HP的状态管理与表单处理优秀课件9-7-2 取得選擇鈕欄位的內容n n選擇鈕欄位是一個單選題,其處理方式和單選的下拉式清單方塊相同,也是將標籤屬性value值傳送到伺服器,使用$_POST結合陣列取得選擇鈕欄位的內容:$gender = $_POSTGender;n n上述程式碼取得選擇鈕Gender的值,此值是選取選項的value屬性值,換句話說,依屬性值就可進一步使用if或switch條件敘述判斷使用者的選擇。HP的状态管理与表单处理优秀课件9-8 隱藏欄位n n9-8-1 隱藏欄位n n9-8-2 取得隱藏欄位的內

20、容HP的状态管理与表单处理优秀课件9-8-1 隱藏欄位n n隱藏欄位並不需使用者輸入資料,而是直接將value屬性值傳送到伺服端,通常是用來傳送表單的環境參數,或是在不同網頁表單間傳遞資料:input typevalue=Stringn n上述語法的屬性說明:HP的状态管理与表单处理优秀课件9-8-2 取得隱藏欄位的內容n n隱藏欄位和文字或密碼方塊一樣,在伺服端只需使用$_POST結合陣列就可以取得隱藏欄位的內容:$order = $_POSTOrder;n n上述程式碼取得名為Order的隱藏欄位值,傳送的是欄位屬性value的值。HP的状态管理与表单处理优秀课件9-9 表單欄位驗證n n

21、9-9-1 PHP程式如何驗證表單n n9-9-2 表單欄位驗證HP的状态管理与表单处理优秀课件9-9-1 PHP程式如何驗證表單-說明n n在PHP程式取得表單欄位資料並不困難,事實上,我們反而需要多考量使用者輸入的資料是否符合需求,在處理取得的資料前進行欄位資料的驗證,檢查使用者輸入的資料是否符合所需的格式。n n當PHP程式使用$_POST或$_GET結合陣列取得欄位資料後,在真正處理資料前,我們可以使用if等條件敘述檢查使用者輸入的欄位資料是否正確,或資料是否空白,表示使用者忘了輸入欄位資料。HP的状态管理与表单处理优秀课件9-9-1 PHP程式如何驗證表單-流程圖n n如果使用者輸入

22、的資料有錯誤,PHP程式並不進行資料處理,而是顯示錯誤訊息,然後回到表單網頁要求使用者重新輸入,表單欄位驗證的流程圖:HP的状态管理与表单处理优秀课件9-9-1 PHP程式如何驗證表單-實作n n在實作表單欄位驗證時,我們可以使用兩個PHP程式:一是表單網頁顯示錯誤訊息,一是PHP處理程式,當錯誤產生時,就使用header()轉址回網頁表單(header()的說明請參閱第10章)。n n另一種方式是將表單和PHP處理程式寫在同一個PHP程式,使用if條件判斷是否是表單送回,如果是,再進行表單欄位驗證和處理。在下一節筆者準備使用此方式建立表單欄位驗證。HP的状态管理与表单处理优秀课件9-9-2

23、表單欄位驗證-判斷是否是表單送回n nPHPPHP程式進行欄位驗證時,因為表單和處理程式程式進行欄位驗證時,因為表單和處理程式寫在寫在同一個程式同一個程式檔案,所以檔案,所以PHPPHP程式需要程式需要判斷顯判斷顯示表單內容示表單內容,或是輸入資料後的表單送回或是輸入資料後的表單送回,可以,可以執行表單欄位驗證:執行表單欄位驗證:if ( isset($_GETReg)if ( isset($_GETReg) ) ) / / 表單處理表單處理 n n上述上述if if條件可以判斷使用者條件可以判斷使用者是否按下表單按鈕是否按下表單按鈕,因,因為表單使用為表單使用getget方法,所以在方法,所

24、以在PHPPHP程式是使用程式是使用$_GET$_GET結合陣列。結合陣列。HP的状态管理与表单处理优秀课件9-9-2 表單欄位驗證-欄位驗證n n如果按下按鈕,就表示使用者已經輸入資料,將表單送回進行處理,所以我們可以開始執行欄位資料的檢查,接著進行表單處理。n n如果欄位有錯誤,就不進行表單處理,直接顯示網頁表單,以便重新讓使用者輸入正確的欄位資料。HP的状态管理与表单处理优秀课件9-9-2 表單欄位驗證-保留資訊n n因為HTTP通訊協定並不能保留狀態,當錯誤發生回到表單後,就算是一些輸入正確的欄位也一樣需要重新輸入,為了保留使用者已經輸入正確的欄位資料,表單欄位在欄位的value屬性有設定預設值:input type=text name=Name input type=text name=Name size =10“ size =10“ value=value=brHP的状态管理与表单处理优秀课件HP的状态管理与表单处理优秀课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号