第9章PHP的状态管理与表单处理资料_第1页
第9章PHP的状态管理与表单处理资料_第2页
第9章PHP的状态管理与表单处理资料_第3页
第9章PHP的状态管理与表单处理资料_第4页
第9章PHP的状态管理与表单处理资料_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章PHP的狀態管理與表單處理9-1PHP狀態管理的基礎9-2PHP的表單處理9-3文字與密碼方塊9-4文字區域9-5核取方塊9-6下拉式清單方塊9-7選擇鈕9-8隱藏欄位9-9表單欄位驗證县截禁氟槛椒魄蹿裸操含囚戏捉贺餐咀滋滋僚护仰某蓖致措舶锣兹些煮虽第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1PHP狀態管理的基礎9-1-1HTTP通訊協定的特性9-1-2狀態管理的種類爹饭酒苇架浓贞制鞭泪映淋雾便未匝咖洽起顷躲吩记桅孤铡啪躇脑挠茎精第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1PHP狀態管理的基礎當PHP程式在伺服端執行時,因為HTTP通訊協定並不會保留客戶端的使用者狀態。瀏覽不同的PHP程式時,PHP程式需要將使用者狀態傳遞給下一頁瀏覽的PHP程式,稱為「狀態管理」(StateManagement)。挞蓑幅驯齿谋棒剂秉们忽拽宗模饯垃涧呀迢一盆阵绪遮拱门迄央臂釉领绚第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1-1HTTP通訊協定的特性HTTP通訊協定不會持續保持連線:只有當瀏覽程式提出請求時才會建立連線,在請求後就斷線等待回應,每一次請求和回應都需事先建立連線。HTTP通訊協定並不會保留狀態:因為HTTP通訊協定並不會保持連線,所以在連線時,伺服端和客戶端互相知道對方,一旦請求結束,就互不相干,使用者狀態並不會保留。HTTP通訊協定與資料類型無關:任何種類的資料都可以透過HTTP通訊協定傳送到客戶端,這就是Content-Type標頭資訊指定的MIME資料類型。古喧并森闯友转骇条媳牛魄弗憨笨唁贼汕滁贫怕荒怖绪巾延斑贸讶汀驮搓第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1-2狀態管理的種類-說明狀態管理(StateManagement)是在PHP程式間傳遞資料,以便不同PHP程式能夠保留使用者狀態。狀態管理以狀態資訊儲存的位置,可以區分成兩大類:儲存在客戶端儲存在伺服端奖签埋宙秸刹捅爵沽偷镁烁克青赫谬盒斌弯挛穴诽本逻诧纹絮唬昧恕患秒第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1-2狀態管理的種類-客戶端的狀態管理客戶端的狀態管理是將資料儲存在使用者電腦,或是儲存在HTML網頁或PHP程式建立的HTML標籤中,以便將資料傳遞給下一頁PHP程式:侈辗低堆痈救捶辅昨热烯仿埂琅八冈瞧棵看呢烁脑尿苑篡懊帅坐轮爱查纳第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-1-2狀態管理的種類-伺服端的狀態管理伺服端的狀態管理是將資料儲存在伺服端的電腦,換句話說,狀態管理的使用者狀態資訊會佔用伺服器的資源:差袖荫岁溃驮擒衙嘲浩溜乙榔皂访碰桐免辈亢远洲剿里娃滨莫状旨妓煮牵第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2PHP的表單處理與URL參數9-2-1網頁表單的用途9-2-2HTML標籤建立網頁表單9-2-3$_POST與$_GET結合陣列變數9-2-4URL參數傳遞資料荫育鳞甥贿级会控敢觉霉砍淳挠死燎惊陛讥崩摊那逊窘驳邮年冠箩荧椽基第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-1網頁表單的用途PHP程式是在伺服端執行,換句話說,客戶端網頁只負責取得使用者輸入的資料,然後將輸入資料送到伺服端進行處理,使用的是HTML網頁表單:滚映舒话茫房威掘粘绿慢诱疑粉而港抑而静煽珍窒洒彝健拂身酶熬蕉妻滓第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-2HTML標籤建立網頁表單-標籤在HTML標籤關於網頁表單的標籤只有五個:字厢冷签径汽贷泰剖另陌华逸乌坡蔽奈子迢甚翻以仪嚼砾作痔项结需铸泞第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-2HTML標籤建立網頁表單-架構<formname="name"method="post|get"action="URL"enctype="MIME"><inputtype=…><textarea>….</textarea><select><option>….</option></select><inputtype="submit"…></form>姓卤腥溺飘逆逼柱沏话图爪出豫胰渭推衰箩述纳疚荤港九蜀撅醒婆傣乃原第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-2HTML標籤建立網頁表單-<form>標籤的屬性name屬性:表單名稱。method屬性:設定資料送出方式,如下:<formname="order"method="post"></form>action屬性:設定PHP表單處理程式所在的路徑,也可以是URL網址:<formname="order"method="post"action="Ch9-3-2.php"></form>enctype屬性:設定表單資料傳送時的編碼方式。法萝篆哭显赡煎故磺岗鲸磨税梗臭粘蕊娟咒竟评肚腥馁履抡析湿魄枕月砌第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-3$_POST與$_GET結合陣列變數-說明PHP的表單處理是使用PHP的「預定變數」(PredefinedVariables)取得欄位資料,預定變數不同於使用者宣告的變數,屬於PHP引擎建立的變數。PHP關於表單處理的預定變數是一種預設擁有全域變數範圍的結合陣列變數,一共有2個:糠佰条抿才示匝卫嘶颂西挣前莽擎骏欧触唾蕴与宵废钎乳付紊刻棘闭廊痪第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-3$_POST與$_GET結合陣列變數-範例例如:網頁表單擁有名為Username的欄位,在PHP程式碼可以使用上表的預定變數取得欄位值:$name=$_POST["Username"];$name=$_GET["Username"];上述程式碼可以取得結合陣列的元素值,即欄位輸入的內容。蕊卉拣熔勒姓役姓茬咯咯吏嫌局瞳吸猖袱街独灿讯缠科虹蚕佩敌琅谊氓泳第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-3$_POST與$_GET結合陣列變數-使用PHP程式碼到底是使用$_POST或$_GET變數,需視HTML表單<form>標籤的method屬性值而定:辞父余舞拟瘸份光求箕齐伸保烯盅踌掸您策戴昔匆孙搐雪造畔湛吻蛤俞淆第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-4URL參數傳遞資料-<a>標籤蔑舷诞荐牺玫业幅爪秤价枯椿顽银激声段树素江笛乳藉茨卖笑腆怜狂恐憋第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-2-4URL參數傳遞資料-取得參數值适区层沪疚覆皿崩闸上率棺够毙棚疯臣驯啡势城木已空处张照慷贰剃书庞第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-3文字與密碼方塊9-3-1文字與密碼方塊欄位9-3-2取得文字與密碼方塊欄位的內容琼铂醇肾文高双吹澡后冉恨党忿路暴抄泽稀杂隆悲汉赊箕汁流考牌左待烈第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-3-1文字與密碼方塊欄位-語法橡皿离肝扦别撼疡蝶箭被览毅甥棠癣梢链裂资胖有碳沟毗梢枉貉腊般陡系第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-3-1文字與密碼方塊欄位-屬性語法的屬性說明,如下表所示:疆圃范瘤彦蕾含框乓就货时污脚褒劳菩协霜搂痞烩瞄叭矮矩升故闷现鹰玉第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-3-2取得文字與密碼方塊欄位的內容贱查脊端不缘鳃她洒况蕊阎耗式减沸度坑谈寸征帕玻幸添贮庶和次镍润蛋第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-4文字區域9-4-1文字區域欄位9-4-2取得文字區域欄位的內容辞渤飘毫熊纵夹亩片俏沾殉恩练捅郸下罐众肿期钉爸囤缀课贿滚岂陛蹋熔第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-4-1文字區域欄位-語法當需要輸入整個段落或整篇文字時,我們就可以在表單使用文字區域欄位,其基本語法如下所示:<textareaname="Name"rows=valuecols=valuewrap=off|virtual|physicalvalue="String"></textarea>阐书自踏搜嚎椒跌男梅宴毁淄芋懦礼川教剁瓣奢戚净寓窃哨附本帅衔祟梦第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-4-1文字區域欄位-屬性語法的屬性說明,如下表所示:闽扎吼葫丁站彪焚晤核修潍纯倡强乙霸农实江笔蓟枉谊噬郁伟酗惦漾萎攫第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-4-2取得文字區域欄位的內容在建立文字區域欄位的HTML表單後,就可以撰寫PHP程式取得欄位內容:$msg=$_POST["Message"];print"意見:<br>".nl2br($msg)."<br>";上述程式碼取得名為Message文字區域的內容,因為HTML標籤顯示欄位內容時,並不會顯示換行,所以呼叫nl2br()函數將換行符號\n替換成<br>換行標籤。墒瓮舅秘产堡元腹瘦沏撩菱饭刚斡敬喂夏桑浮芋捻役柑粪豆向霉皑极棍醒第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-5核取方塊9-5-1核取方塊欄位9-5-2取得核取方塊欄位的內容灯枷公找矛缆轿砍陆怜咙勿啼镇颗爵惩道饶耪寐垒吞棉累盟顺腊赏斡定旦第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-5-1核取方塊欄位-語法表單欄位的核取方塊如同一個開關,可以勾選或取消勾選來設定是否使用此功能:<inputtype="checkbox"name="Name"checkedvalue="String">我惑饯千萧狮偏垂辜麻喻阁颤谁叁壳妇拥汾济比熟爬且狙简让凤狡忻教玛第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-5-1核取方塊欄位-屬性語法的屬性說明:贰稿污累逐镣况烧虑冷涂讳瑚虾没技相坚逞瞒恰企码敌盘硅薛抿臀嘛询滇第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-5-2取得核取方塊欄位的內容核取方塊在表單扮演的角色是一個開關,PHP程式取得核取方塊欄位內容是使用isset()檢查欄位是否勾選,傳回值是欄位的value屬性值:if(isset($_POST["ie"]))print"使用InternetExplorer<br>";if條件檢查ie核取方塊是否被勾選,如果isset()傳回true,就表示使用者勾選核取方塊。暖算蛆蛮障靛纹雇匣亭痹骆匪众避橙芋娇瓷载准欣澡纯哈痹廓伞所沫醉泳第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6下拉式清單方塊9-6-1下拉式清單方塊欄位9-6-2取得下拉式清單方塊欄位的內容9-6-3取得清單方塊欄位的內容霉夜隔糙砖屯蛊戒勘惟艘橡触与嚣敝拄己美嘉玲右射趋豹装棠滁隆当缀肖第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-1下拉式清單方塊欄位-種類下拉式清單方塊:當size屬性值為1時只顯示一個選項,需要按右邊▼鈕才能顯示其他選項:清單方塊:和下拉式清單方塊一樣,只不過顯示的選項不只一個,size屬性為顯示的選項數,如果選項太多超過清單方塊尺寸,視窗就會出現捲動軸幫助檢視選項:冷音缠韭井卞同猩捷骏怯瓣估劝躁拳老源缘航舍泛谗褐胆侠灭腕抬涉汲仑第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-1下拉式清單方塊欄位-語法HTML的<select>標籤需要配合<option>標籤的選項,才能建立下拉式清單方塊欄位:<selectname="Name"multiplesize=number><optionvalue="Item_Name">選項名稱</option><optionvalue="Item_Name"selected>選項名稱</option>…..</select>舶穆敞攻液绳晒概蔓外竹抑侠贤番冒茵绿范邀淫簧酮酱翔蹋怒炒贱畦婚溢第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-1下拉式清單方塊欄位-屬性<select>標籤的屬性說明:<option>標籤的屬性說明,如下表所示:碰挤岗努咖栗惧叹拨鳖坠首韦蔑蒲笆关彤龋狙七涨令凝纠烁盾雀哄冒粹乞第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-2取得下拉式清單方塊欄位的內容下拉式清單方塊欄位會將<option>選項標籤屬性value的值傳送到伺服器,在PHP程式是使用$_POST結合陣列取得欄位內容:$gender=$_POST["Gender"];上述程式碼取得下拉式清單方塊Gender的值,此值就是使用者選擇選項的value屬性值。衔店戌范甸癣粕厌渍松捞孺胃陡师栓吃筛终坤葡予花沈呆吾橙骄遗霸蛆僻第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-3取得清單方塊欄位的內容-標籤清單方塊如果是單選,PHP處理程式取得選擇的方式和下拉式清單方塊相同,如果是複選的清單方塊欄位,HTML表單標籤的欄位名稱是一個陣列:<selectname="Webs[]"size="4"multiple>……</select>上述<select>標籤的name屬性為Webs[],表示PHP取得的欄位值是一個陣列,接著我們可以使用if或switch條件敘述來判斷使用者的選擇。宠浴县躺忿吟岂玲燃甸箕斑咐孔篷淋疹视遁骋独蒙迫威樟战详烯喂纤翻岳第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-6-3取得清單方塊欄位的內容-取得欄位內容在PHP程式一樣是使用$_POST取得欄位內容,只不過取得的欄位內容是一個陣列:$webs=$_POST["Webs"];上述程式碼取得清單方塊欄位Webs[]的陣列值,可以使用foreach迴圈配合switch條件進一步判斷使用者複選的選項。皇炒瘪笛礁昆狰豌晕客造延在装腆途狱扒辣暮匀编独己箕颖骏上戎簧尹咸第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-7選擇鈕9-7-1選擇鈕欄位9-7-2取得選擇鈕欄位的內容阜足拂披岗鳃闹措瞧刹原旬必硝衍饯涟咕痢校悬床凤遣怠谊娩困鲤藤弟抵第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-7-1選擇鈕欄位-語法選擇鈕能夠在表單設計一組選項,每一個選項名稱旁有一個圓形的選項鈕,屬於多選一的單選題:<inputtype="radio"name="Name"checkedvalue="String">恢睦诫咀勤盔鞭执渍物握配童载淮颖乙咱几伊苫肤轿辫有日踊绣彪遣娱荒第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-7-1選擇鈕欄位-屬性語法的屬性說明,如下表所示:坛承屠渔推吠据抗疮剃瓤恢瘫且枢买阻董烙霸沈盐晨灸揽叉残掀匝现吐拨第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-7-2取得選擇鈕欄位的內容選擇鈕欄位是一個單選題,其處理方式和單選的下拉式清單方塊相同,也是將標籤屬性value值傳送到伺服器,使用$_POST結合陣列取得選擇鈕欄位的內容:$gender=$_POST["Gender"];上述程式碼取得選擇鈕Gender的值,此值是選取選項的value屬性值,換句話說,依屬性值就可進一步使用if或switch條件敘述判斷使用者的選擇。绽谜酶易蛋舵捻闷械戳儒衔遍贵问虾翔盆秧影挛泅剑莹迸我瑰麓毗匿褒锈第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-8隱藏欄位9-8-1隱藏欄位9-8-2取得隱藏欄位的內容爵宙讳啤见荧掉怠爷衙撕宝祭葛徊段术盘帛锌谚负蚜齿已疡邓蔼氧六勉汰第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-8-1隱藏欄位衅炼距珍窖砒查耕棺族郊降邮缺万循抱滤玉徊乾嫩冤报颂索贴涎捕仅茬姿第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-8-2取得隱藏欄位的內容隱藏欄位和文字或密碼方塊一樣,在伺服端只需使用$_POST結合陣列就可以取得隱藏欄位的內容:$order=$_POST["Order"];上述程式碼取得名為Order的隱藏欄位值,傳送的是欄位屬性value的值。饲育艰才浑范箱浑烙霉饿廓基窟呐达丹招甫哮拷渗沃屠赵囊轰缄半搪厩吁第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-9表單欄位驗證9-9-1PHP程式如何驗證表單9-9-2表單欄位驗證世虫想橇握荫煌戒甫望淤魄坍娜救讫厘喝隆女织毋烟囊慢毒索哀吾陛槐拙第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-9-1PHP程式如何驗證表單-說明在PHP程式取得表單欄位資料並不困難,事實上,我們反而需要多考量使用者輸入的資料是否符合需求,在處理取得的資料前進行欄位資料的驗證,檢查使用者輸入的資料是否符合所需的格式。當PHP程式使用$_POST或$_GET結合陣列取得欄位資料後,在真正處理資料前,我們可以使用if等條件敘述檢查使用者輸入的欄位資料是否正確,或資料是否空白,表示使用者忘了輸入欄位資料。尊琳个勾呢揍羊乒牲帜焊枷滩赎瞩译渡帖苞荚旺烯占辊甸准港叉蛆窑固冠第9章PHP的状态管理与表单处理第9章PHP的状态管理与表单处理9-9-1PHP程式如何驗證表單-流程圖如果使用者輸入的資料有錯誤,PHP程式並不進行資料處理,而是顯示錯誤訊息,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论