PHP的状态管理与表单处理.ppt

上传人:sh****n 文档编号:6402950 上传时间:2020-02-24 格式:PPT 页数:51 大小:507.50KB
返回 下载 相关 举报
PHP的状态管理与表单处理.ppt_第1页
第1页 / 共51页
PHP的状态管理与表单处理.ppt_第2页
第2页 / 共51页
PHP的状态管理与表单处理.ppt_第3页
第3页 / 共51页
点击查看更多>>
资源描述
第9章PHP的状态管理与表单处理 9 1PHP状态管理的基础9 2PHP的表单处理9 3文字与密码方块9 4文字区域9 5核取方块9 6下拉式清单方块9 7选择钮9 8隐藏栏位9 9表单栏位验证 9 1PHP状态管理的基础 9 1 1HTTP通讯协定的特性9 1 2状态管理的种类 9 1PHP状态管理的基础 当PHP程序在伺服端执行时 因为HTTP通讯协定并不会保留客户端的使用者状态 所以浏览不同的PHP程序时 PHP程序需要将使用者状态传递给下一页浏览的PHP程序 称为 状态管理 StateManagement 简单的说 状态管理是在保留客户端使用者状态 以便PHP网站可以取得使用者状态来正确的执行PHP程序 9 1 1HTTP通讯协定的特性 HTTP通讯协定不会持续保持连线 只有当浏览程序提出请求时才会建立连线 在请求后就断线等待回应 每一次请求和回应都需事先建立连线 HTTP通讯协定并不会保留状态 因为HTTP通讯协定并不会保持连线 所以在连线时 伺服端和客户端互相知道对方 一旦请求结束 就互不相干 使用者状态并不会保留 HTTP通讯协定与资料类型无关 任何种类的资料都可以透过HTTP通讯协定传送到客户端 这就是Content Type标头信息指定的MIME资料类型 9 1 2状态管理的种类 说明 状态管理 StateManagement 是在PHP程序间传递资料 以便不同PHP程序能够保留使用者状态 状态管理以状态信息储存的位置 可以区分成两大类 储存在客户端储存在伺服端 9 1 2状态管理的种类 客户端的状态管理 客户端的状态管理是将资料储存在使用者计算机 或是储存在HTML网页或PHP程序建立的HTML标签中 以便将资料传递给下一页PHP程序 常用的方法如下表所示 9 1 2状态管理的种类 伺服端的状态管理 伺服端的状态管理是将资料储存在伺服端的计算机 换句话说 状态管理的使用者状态信息会占用服务器的资源 常用的方法如下表所示 9 2PHP的表单处理与URL参数 9 2 1网页表单的用途9 2 2HTML标签建立网页表单9 2 3 POST与 GET结合阵列变量9 2 4URL参数传递资料 9 2 1网页表单的用途 PHP程序是在伺服端执行 换句话说 客户端网页只负责取得使用者输入的资料 然后将输入资料送到伺服端进行处理 使用的是HTML网页表单 如下图所示 9 2 2HTML标签建立网页表单 标签 在HTML标签关于网页表单的标签只有五个 如下表所示 9 2 2HTML标签建立网页表单 架构 9 2 2HTML标签建立网页表单 标签的属性 name属性 表单名称 method属性 设定资料送出方式 如下 action属性 设定PHP表单处理程序所在的路径 也可以是URL网址 如下所示 enctype属性 设定表单资料传送时的编码方式 9 2 3 POST与 GET结合阵列变量 说明 PHP的表单处理是使用PHP的 预定变量 PredefinedVariables 取得栏位资料 预定变量不同于使用者宣告的变量 属于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 4URL参数传递资料 标签 PHP除了可以使用本章后的表单来传递资料外 还可以使用超连结URL参数或是header 函数 详见第10章的说明 转址传送资料给其他PHP程序 如下所示 登入网站标签的超连结传递Username和Password一共两个参数 9 2 4URL参数传递资料 取得参数值 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 使用InternetExplorer 上述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 1PHP程序如何验证表单9 9 2表单栏位验证 9 9 1PHP程序如何验证表单 说明 在PHP程序取得表单栏位资料并不困难 事实上 我们反而需要多考量使用者输入的资料是否符合需求 在处理取得的资料前进行栏位资料的验证 检查使用者输入的资料是否符合所需的格式 当PHP程序使用 POST或 GET结合阵列取得栏位资料后 在真正处理资料前 我们可以使用if等条件叙述检查使用者输入的栏位资料是否正确 或资料是否空白 表示使用者忘了输入栏位资料 9 9 1PHP程序如何验证表单 流程图 如果使用者输入的资料有错误 PHP程序并不进行资料处理 而是显示错误讯息 然后回到表单网页要求使用者重新输入 表单栏位验证的流程图 如下图所示 9 9 1PHP程序如何验证表单 实作 在实作表单栏位验证时 我们可以使用两个PHP程序 一是表单网页显示错误讯息 一是PHP处理程序 当错误产生时 就使用header 转址回网页表单 header 的说明请参阅第10章 另一种方式是将表单和PHP处理程序写在同一个PHP程序 使用if条件判断是否是表单送回 如果是 再进行表单栏位验证和处理 在下一节笔者准备使用此方式建立表单栏位验证 9 9 2表单栏位验证 判断是否是表单送回 PHP程序进行栏位验证时 因为表单和处理程序写在同一个程序档案 所以PHP程序需要判断显示表单内容 或是输入资料后的表单送回 可以执行表单栏位验证 如下所示 if isset GET Reg 表单处理 上述if条件可以判断使用者是否按下表单按钮 因为表单使用get方法 所以在PHP程序是使用 GET结合阵列 9 9 2表单栏位验证 栏位验证 如果按下按钮 就表示使用者已经输入资料 将表单送回进行处理 所以我们可以开始执行栏位资料的检查 接着进行表单处理 如果栏位有错误 就不进行表单处理 直接显示网页表单 以便重新让使用者输入正确的栏位资料 9 9 2表单栏位验证 保留信息 因为HTTP通讯协定并不能保留状态 当错误发生回到表单后 就算是一些输入正确的栏位也一样需要重新输入 为了保留使用者已经输入正确的栏位资料 表单栏位在栏位的value属性有设定预设值 如下所示
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!