版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2,第7章 构建PHP动态网页,PHP、ASP、JSP等脚本语言的作用不仅仅是使用它们提供的函数在服务器上执行,更重要的是,它们提供了静态网页所不具备的与访客交互的能力。 对于同一个静态HTML网页来说,所有的访客访问所获得的都是相同的表现,而脚本语言所编写的交互的动态网页则是千人千面。不同的访客访问,就会呈现该访客特定的表现。 以脚本语言编写的动态网页经常用于访客向网站提交留言、发表信息等操作。,3,7.1 Web表单及其常用元素简介,访客之所以能够与网站的动态网页交互,全靠HTML标准里提供的用于访客提交信息的Web表单,使用表单,访客就可以输入、选择各种信息,并向服务器提交。,4,7.1
2、.1 表单标记form,HTML表单(form)是HTML的一个重要部分,主要用于采集和提交用户输入的信息,表单允许客户端的用户以标准格式向服务器提交数据。 HTML网页中定义表单的标记是,这种标记需要成对出现,在两者中间插入表单的其他元素或者HTML代码。 form标记的几个属性如下。 name id action method 表单还有一个重要的事件:onsubmit,当表单要提交时触发,一般使用这个事件做一些用户输入检测,检测用户的输入值是否合法。,5,7.1.2 输入标记input与文本框,type属性用于指出输入标记的类型,有 input type=“text”(单行文本输入框) i
3、nput type=“password”(密码输入框 input type=“submit”(提交) input type=“reset”(取消) input type=“button”(按钮) input type=“radio”(单选按钮) input type=“checkbox”(复选框) input type=“hidden”(隐藏) input type=“file”(文件上传) input type=“image”(图像),6,7.1.3 按钮,除去两种特定用途的按钮submit(提交)和reset(重置)外,其他需要用于和表单交互的就是不具特殊功能的普通按钮,特殊按钮只有用于表
4、单才能发挥特殊的作用,而普通按钮除可在表单中应用外,在网页的其他地方使用也很方便。 例如: 代码运行结果如图7-2所示。,7,7.1.4 单选按钮与复选框,使用单选按钮,让用户在相同名字的一组选项里只能选择一个。示例代码如下: 管理员性别: 男 女 运行结果如图7-3所示。,8,7.1.5 多行文本区标记textarea及FCKeditor简介,多行输入框(textarea)主要用于输入较长的文本信息,如访客留言的输入框或者新闻发布系统的正文编辑框。下面是一个textarea的例子: 其中cols表示textarea的宽度,rows表示textarea的高度,显示几行的输入。 图7-6是系统默
5、认的多行文本区演示,只能输入普通文本,不能实现丰富的用户输入界面。,9,7.1.5 多行文本区标记textarea及FCKeditor简介,FCKeditor是一个专门使用在网页上的开放源代码的所见即所得文字编辑器,它致力于轻量化,不需要太复杂的安装步骤即可使用。 图7-7是使用了FCKeditor扩充功能后的多行文本域演示,可以方便地对输入的内容进行排版修饰,可以方便地插入图片和flash动画,使用起来就像Word一样方便。,10,7.1.6 下拉框与列表框标记select,下拉框(select)既可以用做单选,也可以用做复选。单选例句如下: 我的喜爱: 旅行 购物 影视 运行结果如图7-8
6、所示。,11,7.1.6 下拉框与列表框标记select,如果要选项可以复选,则在select语句中加上multiple即可,访客用Ctrl键加鼠标点击来实现多选。例如: 我的喜爱: 旅行 购物 影视 运行结果如图7-9所示。,12,7.1.7 在Web页面中嵌入PHP代码,PHP、ASP这些动态脚本语言的最终目的就是要被Apache、IIS等Web服务器解释并生成标准的HTML源代码供浏览器解析。 PHP页面的运行效果如图7-11所示。,13,7.2 PHP获取Web表单数据,表单的内容一旦提交给Web服务器,则该服务器就需要获取表单提交过来的数据并作出相应的处理,从而实现与浏览器客户端的交
7、互。,14,7.2.1 GET方法和POST方法,GET方法是将表单控件的name/value信息经过编码之后,通过URL发送到服务器,我们可以在浏览器地址栏里看到发送后的这个URL地址。而POST则将表单的内容通过HTTP发送,我们在地址栏中是看不到表单的提交信息的。 下面分别来演示以GET方法和POST方法提交表单数据,注意观察浏览器的地址栏。 (1)GET方法代码: 参见教材P133 该网页代码的运行情况如图7-12所示。 (2)POST方法脚本代码: 参见教材P134 运行该代码的网页将如图7-14所示。,15,7.2.2 PHP接收表单数据,根据表单提交方式的不同,PHP分别使用$_
8、GET和$_POST两个超全局变量来获取通过GET方法或者POST方法提交过来的数据。 我们分别改写前面的两个PHP脚本如下。 (1)获取GET方法提交的数据: 参见教材P136 运行结果如图7-16所示。 (2)获取POST方法提交的数据: 参见教材P137 运行结果如图7-17所示。,16,7.2.3 PHP获取环境变量,PHP中经常使用的环境变量可以用超全局变量$_SERVER来获得,$_SERVER是一个包含诸如头信息(Header)、路径(Path)和脚本位置(Script Locations)的数组,该数组常用的元素如下。 PHP_SELF argv argc SERVER_ADD
9、R SERVER_NAME SERVER_SOFTWARE SERVER_PROTOCOL REQUEST_METHOD REQUEST_TIME QUERY_STRING DOCUMENT_ROOT HTTP_ACCEPT HTTP_ACCEPT_CHARSET HTTP_ACCEPT_ENCODING HTTP_ACCEPT_LANGUAGE HTTP_CONNECTION HTTP_HOST,17,7.2.3 PHP获取环境变量,HTTP_REFERER HTTP_USER_AGENT HTTPS REMOTE_ADDR REMOTE_HOST REMOTE_PORT SCRIPT_FI
10、LENAME SERVER_ADMIN SERVER_PORT SERVER_SIGNATURE PATH_TRANSLATED SCRIPT_NAME REQUEST_URI PHP_AUTH_DIGEST PHP_AUTH_USER PHP_AUTH_PW AUTH_TYPE,18,7.2.4 PHP获取URL参数,GET方法向Web服务器提交数据,是通过URL地址显示传递各参数的,于是,我们就可以根据这个规律直接构造URL字符串来访问Web服务器,无需再写表单页,或者使用超级链接的方式创建目录列表页,比写表单页更加方便快捷: 参见教材P140 如果要传递的参数超过1个,中间就用“ doc
11、.focus(); return false; ,21,7.3.2 日期验证,日期的输入格式一般是YYYY-MM-DD或者YYYY-M-D,它的js验证代码为: function formatTime(str) var r = str.match(/(d1,4)(-|/)(d1,2)2(d1,2)$/); if(r=null) return false; var d = new Date(r1, r3-1, r4); return (d.getFullYear()=r1 ,22,7.3.3 E-mail地址验证,电子邮件形式一般是userdomain.doma
12、in,它的js验证代码为: if (!(/(a-zA-Z0-9_-)+(a-zA-Z0-9_-)+(.a-zA-Z0-9_-)+/ .test(document.jstest.mail.value) alert(E-mail格式错误!); document.jstest.mail.focus(); return false; ,23,7.3.4 密码字段的验证,为了增强密码的强度,我们可以给密码字段增加随时监测输入字符还是数字的检测,根据一定的规则判断用户输入的密码强度。 具体代码见下小节的示例。,24,7.3.5 改进的用户信息输入程序,综合上面的js脚本验证功能,我们将这个表单改写如下:
13、参见教材P142 现在再来看,提交了不规范数据后的页面如图7-18所示。,25,7.4 动态网页中常用的URL编码解码函数,本章开始学习GET方法时,我们已经发现用户输入的汉字在提交后,在地址栏中所有的汉字均变成了不可读的杂乱无章的编码,这是为了让单字节语言和多字节语言共同兼容于浏览器的缘故。,26,7.4.1 字符串编码:urlencode,函数语法: string urlencode(string $str) 函数说明: 字符串$str中除了“-”、“_”、“.”之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。 函数例程: 参见教材P146 运行这个代码,提交表单,我们会发现该函数输出的内容与URL地址栏中自动生成的字符串是相同的,如图7-19所示。,27,7.4.2 解码字符串:urldecode,与urlencode函数相对应,PHP提供了urldecode函数,用来还原被编码过的字符串。 函数语法: string urldecode(string str) 函数说明: 还原被编码过的字符串。 函数例程: 执行该脚本,将会输出编码之前的字符串“北京2008奥运”。,28,7.5 本 章 小 结,表单是实现访客与网站交互的重要方式,PHP提供了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第1节 电能 电功(同步教学课件)物理人教版2024九年级全一册
- 2026年大学第四学年(模具创新)新型模具设计理念测试题及答案
- 无锡市滨湖区重点达标名校2026届中考适应性测试(三诊)物理试题(A卷)含解析
- 重庆北碚区达标名校2026年初三质量检测试题(三模)物理试题试卷含解析
- 天津市宁河区2026年初三下期第一次月语文试题含解析
- 西工大附中2025-2026学年高中新课程初三下学期期末考试物理试题含解析
- 2025 高中时评类阅读理解之社会公平问题课件
- 2026年教育行业自动化测试的成功实践
- 2025 高中文言文阅读理解之文化常识拓展课件
- 2026年机械振动分析及其设计影响
- 2026广东中山市神湾镇神湾社区居民委员会招聘1人考试参考题库及答案解析
- 2025年贵州省中考物理试题【含答案、解析】
- 2023年江苏南京市特种设备安全监督检验研究院招考聘用高层次人才笔试历年高频考点试题含答案带详解
- 巴林特工作小组培训
- (完整版)船舶涂装
- 安徽绿沃循环能源科技有限公司12000t-a锂离子电池高值资源化回收利用项目(重新报批)环境影响报告书
- 幼儿园施工单位竣工验收自评报告
- 城市社会地理学16城市社会学研究方法
- 中央空调系统设计详细计算书
- 儿科疾病作业治疗(治疗) 作业治疗课件
- 交安B、证考试题库
评论
0/150
提交评论