HP的状态管理与表单处理.ppt_第1页
HP的状态管理与表单处理.ppt_第2页
HP的状态管理与表单处理.ppt_第3页
HP的状态管理与表单处理.ppt_第4页
HP的状态管理与表单处理.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

第9章 PHP的状态管理与表单处理,9-1 PHP状态管理的基础 9-2 PHP的表单处理 9-3 文字与密码方块 9-4 文字区域 9-5 核取方块 9-6 下拉式清单方块 9-7 选择钮 9-8 隐藏栏位 9-9 表单栏位验证,9-1 PHP状态管理的基础,9-1-1 HTTP通讯协定的特性 9-1-2 状态管理的种类,9-1 PHP状态管理的基础,当PHP程序在伺服端执行时,因为HTTP通讯协定并不会保留客户端的使用者状态,所以浏览不同的PHP程序时,PHP程序需要将使用者状态传递给下一页浏览的PHP程序,称为状态管理(State Management)。 简单的说,状态管理是在保留客户端使用者状态,以便PHP网站可以取得使用者状态来正确的执行PHP程序。,9-1-1 HTTP通讯协定的特性,HTTP通讯协定不会持续保持连线:只有当浏览程序提出请求时才会建立连线,在请求后就断线等待回应,每一次请求和回应都需事先建立连线。 HTTP通讯协定并不会保留状态:因为HTTP通讯协定并不会保持连线,所以在连线时,伺服端和客户端互相知道对方,一旦请求结束,就互不相干,使用者状态并不会保留。 HTTP通讯协定与资料类型无关:任何种类的资料都可以透过HTTP通讯协定传送到客户端,这就是Content-Type标头信息指定的MIME资料类型。,9-1-2 状态管理的种类-说明,状态管理(State Management)是在PHP程序间传递资料,以便不同PHP程序能够保留使用者状态。状态管理以状态信息储存的位置,可以区分成两大类: 储存在客户端 储存在伺服端,9-1-2 状态管理的种类-客户端的状态管理,客户端的状态管理是将资料储存在使用者计算机,或是储存在HTML网页或PHP程序建立的HTML标签中,以便将资料传递给下一页PHP程序,常用的方法如下表所示:,9-1-2 状态管理的种类-伺服端的状态管理,伺服端的状态管理是将资料储存在伺服端的计算机,换句话说,状态管理的使用者状态信息会占用服务器的资源,常用的方法如下表所示:,9-2 PHP的表单处理与URL参数,9-2-1 网页表单的用途 9-2-2 HTML标签建立网页表单 9-2-3 $_POST与$_GET结合阵列变量 9-2-4 URL参数传递资料,9-2-1 网页表单的用途,PHP程序是在伺服端执行,换句话说,客户端网页只负责取得使用者输入的资料,然后将输入资料送到伺服端进行处理,使用的是HTML网页表单,如下图所示:,9-2-2 HTML标签建立网页表单-标签,在HTML标签关于网页表单的标签只有五个,如下表所示:,9-2-2 HTML标签建立网页表单-架构, . . ,9-2-2 HTML标签建立网页表单-标签的属性,name属性:表单名称。 method属性:设定资料送出方式,如下: action属性:设定PHP表单处理程序所在的路径,也可以是URL网址,如下所示: enctype属性:设定表单资料传送时的编码方式。,9-2-3 $_POST与$_GET结合阵列变量-说明,PHP的表单处理是使用PHP的预定变量(Predefined Variables)取得栏位资料,预定变量不同于使用者宣告的变量,属于PHP引擎建立的变量。 PHP关于表单处理的预定变量是一种预设拥有全域变量范围的结合阵列变量,一共有2个,其说明如下表所示:,9-2-3 $_REQUEST结合阵列变量-说明,PHP4.0以上版本 $_REQUEST亦可取得栏位资料。,9-2-3 $_POST与$_GET结合阵列变量-范例,例如:网页表单拥有名为Username的栏位,在PHP程序码可以使用上表的预定变量取得栏位值,如下所示: $name = $_POST“Username“; $name = $_GET“Username“; 上述程序码可以取得结合阵列的元素值,即栏位输入的内容。,9-2-3 $_POST与$_GET结合阵列变量-使用,PHP程序码到底是使用$_POST或$_GET变量,需视HTML表单标签的method属性值而定,如下表所示:,9-2-4 URL参数传递资料-标签,PHP除了可以使用本章后的表单来传递资料外,还可以使用超连结URL参数或是header()函数(详见第10章的说明)转址传送资料给其他PHP程序,如下所示: 登入网站 标签的超连结传递Username和Password一共两个参数。,9-2-4 URL参数传递资料-取得参数值,PHP程序取得超连结传递参数如同表单的get方法,可以使用$_GET阵列变量取得参数或栏位值,如下所示: $username = $_GET“Username“; $pass = $_GET“Password“;,9-3 文字与密码方块,9-3-1 文字与密码方块栏位 9-3-2 取得文字与密码方块栏位的内容,9-3-1 文字与密码方块栏位-语法,文字和密码方块都可以输入一段文字内容,唯一的差别在于密码栏位输入的资料并不会显示出来,而是使用小圆点或*星号代替,其基本语法如下所示: ,9-3-1 文字与密码方块栏位-属性,语法的属性说明,如下表所示:,9-3-2 取得文字与密码方块栏位的内容,在建立好文字与密码方块的HTML表单后,我们就可以撰写PHP程序取得栏位内容。文字与密码栏位是直接将输入资料传到服务器,PHP程序只需使用$_POST结合阵列变量就可以取得栏位内容,如下所示: $username = $_POST“User“; $password = $_POST“Pass“; 上述程序码的阵列键值是表单栏位的名称属性name,分别为:User文字方块和Pass密码方块的内容。,9-4 文字区域,9-4-1 文字区域栏位 9-4-2 取得文字区域栏位的内容,9-4-1 文字区域栏位-语法,当需要输入整个段落或整篇文字时,我们就可以在表单使用文字区域栏位,其基本语法如下所示: ,9-4-1 文字区域栏位-属性,语法的属性说明,如下表所示:,9-4-2 取得文字区域栏位的内容,在建立文字区域栏位的HTML表单后,就可以撰写PHP程序取得栏位内容,如下所示: $msg = $_POST“Message“; print “意见:“.nl2br($msg).“; 上述程序码取得名为Message文字区域的内容,因为HTML标签显示栏位内容时,并不会显示换行,所以呼叫nl2br()函数将换行符号n替换成换行标签。,9-5 核取方块,9-5-1 核取方块栏位 9-5-2 取得核取方块栏位的内容,9-5-1 核取方块栏位-语法,表单栏位的核取方块如同一个开关,可以勾选或取消勾选来设定是否使用此功能,其基本语法如下所示: ,9-5-1 核取方块栏位-属性,语法的属性说明,如下表所示:,9-5-2 取得核取方块栏位的内容,核取方块在表单扮演的角色是一个开关,PHP程序取得核取方块栏位内容是使用isset()检查栏位是否勾选,传回值是栏位的value属性值,如下所示: if (isset($_POST“ie“) print “使用Internet Explorer“; 上述if条件检查ie核取方块是否被勾选,如果isset()传回true,就表示使用者勾选核取方块,每一个核取方块都可以使用相同方式进行检查。,9-6 下拉式清单方块,9-6-1 下拉式清单方块栏位 9-6-2 取得下拉式清单方块栏位的内容 9-6-3 取得清单方块栏位的内容,9-6-1 下拉式清单方块栏位-种类,下拉式清单方块:当size属性值为1时只显示一个选项,需要按右边钮才能显示其他选项,如下图所示: 清单方块:和下拉式清单方块一样,只不过显示的选项不只一个,size属性为显示的选项数,如果选项太多超过清单方块尺寸,视窗就会出现卷动轴帮助检视选项,如下图所示:,9-6-1 下拉式清单方块栏位-语法,HTML的标签需要配合标签的选项,才能建立下拉式清单方块栏位,其基本语法,如下所示: 选项名称 选项名称 ,9-6-1 下拉式清单方块栏位-属性,标签的属性说明,如下表所示: 标签的属性说明,如下表所示:,9-6-2 取得下拉式清单方块栏位的内容,下拉式清单方块栏位会将选项标签属性value的值传送到服务器,在PHP程序是使用$_POST结合阵列取得栏位内容,如下所示: $gender = $_POST“Gender“; 上述程序码取得下拉式清单方块Gender的值,此值就是使用者选择选项的value属性值。,9-6-3 取得清单方块栏位的内容-标签,清单方块如果是单选,PHP处理程序取得选择的方式和下拉式清单方块相同,如果是复选的清单方块栏位,HTML表单标签的栏位名称是一个阵列,如下所示: 上述标签的name属性为Webs,表示PHP取得的栏位值是一个阵列,接着我们可以使用if或switch条件叙述来判断使用者的选择。,9-6-3 取得清单方块栏位的内容-取得栏位内容,在PHP程序一样是使用$_POST取得栏位内容,只不过取得的栏位内容是一个阵列,如下所示: $webs = $_POST“Webs“; 上述程序码取得清单方块栏位Webs的阵列值,可以使用foreach循环配合switch条件进一步判断使用者复选的选项。,9-7 选择钮,9-7-1 选择钮栏位 9-7-2 取得选择钮栏位的内容,9-7-1 选择钮栏位-语法,选择钮能够在表单设计一组选项,每一个选项名称旁有一个圆形的选项钮,属于多选一的单选题,其基本语法如下所示: ,9-7-1 选择钮栏位-属性,语法的属性说明,如下表所示:,9-7-2 取得选择钮栏位的内容,选择钮栏位是一个单选题,其处理方式和单选的下拉式清单方块相同,也是将标签属性value值传送到服务器,使用$_POST结合阵列取得选择钮栏位的内容,如下所示: $gender = $_POST“Gender“; 上述程序码取得选择钮Gender的值,此值是选取选项的value属性值,换句话说,依属性值就可进一步使用if或switch条件叙述判断使用者的选择。,9-8 隐藏栏位,9-8-1 隐藏栏位 9-8-2 取得隐藏栏位的内容,9-8-1 隐藏栏位,隐藏栏位并不需使用者输入资料,而是直接将value属性值传送到伺服端,通常是用来传送表单的环境参数,或是在不同网页表单间传递资料,其基本语法如下所示: 上述语法的属性说明,如下表所示:,9-8-2 取得隐藏栏位的内容,隐藏栏位和文字或密码方块一样,在伺服端只需使用$_POST结合阵列就可以取得隐藏栏位的内容,如下所示: $order = $_POST“Order“; 上述程序码取得名为Order的隐藏栏位值,传送的是栏位属性value的值。,9-9 表单栏位验证,9-9-1 PHP程序如何验证表单 9-9-2 表单栏位验证,9-9-1 PHP程序如何验证表单-说明,在PHP程序取得表单栏位资料并不困难,事实上,我们反而需要多考量使用者输入的资料是否符合需求,在处理取得的资料前进行栏位资料的验证,检查使用者输入的资料是否符合所需的格式。 当PHP程序使用$_POST或$_GET结合阵列取得栏位资料后,在真正处理资料前,我们可以使用if等条件叙述检查使用者输入的栏位资料是否正确,或资料是否空白,表示使用者忘了输入栏位资料。,9-9-1 PHP程序如何验证表单-流程图,如果使用者输入的资料有错误,PHP程序并不进行资料处理,而是显示错误讯息,然后回到表单网页要求使用者重新输入,表单栏位验证的流程图,如下图所示:,9-9-1 PHP程序如何验证表单-实作,在实作表单栏位验证时,我们可以使用两个PHP程序:一是表单网页显示错误讯息,一是PHP处理程序,当错误产生时,就使用header()转址回网页表单(header()的说明请参阅第10章)。 另一种方式是将表单和PHP处理程序写在同一个PHP程序,使用if条件判断是否是表单送回,如果是,再进行表单栏位验证和处理。在下一节笔者准备使用此方式建立表单栏位验证。,9-9-2 表单栏位验证-判断是否是表单送回,PHP程序进行栏位验证时,因为表单和处理程序写在同一个程序档案,所以PHP程序需要判断显示表单内容,或是输入资料后的表单送回,可以执行表单栏位验证,如下所示: if ( isset($_GET“Reg“) ) / 表单处理 上述if条件可以判断使用者是否按下表单按钮,因为表

温馨提示

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

评论

0/150

提交评论