单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2020/12/14,#,第,9,讲,PHP,网站开发,(2),PHP,程序设计,第9讲 PHP网站开发(2)PHP程序设计,1,目 录,CONTENTS,01,02,03,04,表单验证,Session,管理,Cookie,管理,综合案例,目 录CONTENTS01020304表,表单验证,01,表单验证01,在,PHP,网站程序中,为了安全地处理,PHP,表单数据,防止表单数据被非法截取和篡改,以及黑客攻击等风险,需要对,PHP,表单数据进行安全验证。,有两种表单数据验证的处理方式:,(,1),在客户端,(,表单页面,),使用,JavaScript,脚本进行表单数据的验证。,(,2),在服务端,(,表单处理页面,),使用,PHP,代码进行表单数据的验证。,1,表单验证,在PHP网站程序中,为了安全地处理PHP表单数据,防止表单数,4,1.1,客户端验证,在客户端,(,表单页面,),使用,JavaScrpt,脚本对所填写的表单数据进行数据有效性和完整性的验证。,这种验证程序是在表单数据向服务端提交之前进行的。,客户端的表单数据验证包括表单数据非空验证,(,必填数据验证,),、邮箱格式验证、日期格式验证、数据为数字类型验证、以及限制输入框只能输入数字等功能。,1,创建表单及表单元素,1.1 客户端验证1 创建表单及表单元素,5,1.1,客户端验证,(1),表单数据非空验证,许多网页的表单页面需要使用数据为空验证功能。例如,在会员注册页面中,常常要求用户名、密码等信息不能为空,这些表单控件被称为必填项。,1,创建表单及表单元素,1.1 客户端验证1 创建表单及表单元素,6,1.1,客户端验证,(1),表单数据非空验证,首先,在表单中编写表单并且定义表单控件名称。,1,创建表单及表单元素,会员登录,用户名:,密码:,1.1 客户端验证1 创建表单及表单元素,7,1.1,客户端验证,(1),表单数据非空验证,其次,在,标签中编写,JS,验证脚本,1,创建表单及表单元素,function validateForm(),/,获取用户名和密码框的值,var uname=document.form1.txt_username.value;,var upwd=document.form1.txt_pwd.value;,if(uname=null|uname=),alert(,用户名不能为空,);,return false;,else if(upwd=null|upwd=),document.getElementById(p_note).innerHTML=,密码不能为空,.;,return false;,1.1 客户端验证1 创建表单及表单元素,8,1.1,客户端验证,(2),邮箱格式验证,在设计用户注册、用户登录或者用户信息编写等功能时,常常需要用到邮箱信息。邮箱的格式一般定义如下:,以大写字母,A-Z,、小写字母,a-z,、数字,0-9,、下滑线,_,、减号,-,及点号,.,开头,并需要重复一次至多次,+;,中间必须包括,符号,;,之后需要连接大写字母,A-Z,、小写字母,a-z,、数字,0-9,、下滑线,_,、减号,-,及点号,.,,并需要重复一次至多次,+;,结尾必须是点号,.,连接,2,至,4,位的大小写字母,A-Za-z2,4,。,1,创建表单及表单元素,1.1 客户端验证1 创建表单及表单元素,9,1.2,服务端验证,附了在客户端对表单数据进行验证,也可以在服务端使用,PHP,程序对提交的表单内容进行验证。,服务端的数据验证功能同样可以包括表单数据非空验证、邮箱格式验证、以及日期格式验证等功能。,1,创建表单及表单元素,1.2 服务端验证1 创建表单及表单元素,10,1.2,服务端验证,(1),表单数据非空验证,与客户端验证不同,表单数据从客户端,(,表单页面,),被直接提交到服务端,(,表单处理页面,),,然后在服务端进行数据的验证。,首先,编写表单代码,指定要执行验证的服务端页面,以及表单提交方式,会员登录,用户名:,密码:,1,创建表单及表单元素,1.2 服务端验证1 创建表单及表单元素,11,1.2,服务端验证,(1),表单数据非空验证,在,0606_do.php,页面中,接收提交的用户名和密码信息,然后进行非空判断,如果用户名为空,则使用,JavaScript,脚本弹出,用户名不能为空,的提示对话框,并且将页面跳转回,0606.php,页面。,1,创建表单及表单元素,1.2 服务端验证1 创建表单及表单元素?php,12,1.2,服务端验证,(2),邮箱格式验证,首先,编写表单代码,指定要执行验证的服务端页面,以及表单提交方式,邮箱:,1,创建表单及表单元素,1.2 服务端验证1 创建表单及表单元素,13,1.2,服务端验证,(2),邮箱格式验证,在,0607_do.php,页面中,接收提交的邮箱信息,定义正则表达式,接着与邮箱进行匹配,如果邮箱格式正确,则显示邮箱信息,否则,弹出提示对话框并跳回,0607.php,页面。,1,创建表单及表单元素,1.2 服务端验证1 创建表单及表单元素?php,14,Session,管理,02,Session管理02,Session(,中文译为,“,会话,”),用于存储跨网页程序的数据。,它将数据临时存储在服务器端,该数据只针对单一用户。,即服务器为每个访问者,(,客户端,),分配各自的,Session,对象,访问者之间无法相互存取对方的,Session,对象。,当超过服务器设置的有效时间后,,Session,对象就会自动消失。,Session,常用于用户登录验证和网络购物车的实现。,2 Session,管理,Session(中文译为“会话”)用于存储跨网页程序的数,16,2.1,启动会话,使用,session_start(),函数启动会话,语法格式如下。,bool session_start();,2.2,定义会话变量,会话被启动后,可以定义不同的,Session,变量,并分别将数据保存在数组,$_SESSION,中。即,,$_SESSION,是一个会话数组,我们可以根据实际需要分别定义多个不同的数组元素名称,并且赋预相应的元素值,定义语法格式如下。,$_SESSION,变量名称,=,变量值,;,2 Session,管理,2.1 启动会话2 Session管理,17,案例,2 Session,管理,实现会话的启动和注册功能,创建一个,Session,变量并赋值,然后输出会话变量。,案例2 Session管理实现会话的启动和注册功,18,Cookie,管理,03,Cookie管理03,3.1,Cookie,工作原理,Cookie,是一种服务器端网站将数据存储在客户端并以此来跟踪和识别用户的机制。,当用户再次访问该服务器网站时,网站通过读取,cookie,数据获取该用户信息并作出响应。如通过,Cookie,存储会员登录时的帐户信息,实现会员再次登录时自动登录。,Cookie,文件以文本文件形式存储于客户端硬盘的指定文件夹,(,一般为,C:Documents and SettingsAdministratorCookies),下,命名方式为,(,用户名,网站地址,数字,.txt),。,3,获取超链接提交的数据,3.1 Cookie工作原理3 获取超链接提交的数据,20,3.2,使用,Cookie,创建,Cookie,使用,setCookie(),函数创建,Cookie:,bool setCookie(string,变量名,string,变量值,int,过期时间,);,使用,Cookie,$_COOKIE,变量名称,3,获取超链接提交的数据,3.2 使用Cookie3 获取超链接提交的数据,21,综合案例,04,综合案例04,4.1,留言内容字数限制,4,处理多值表单,部分论坛网站或网上留言板中会实现留言内容字数的限制功能,从而提高留言信息表达的精简性。留言内容通常是在多行文本框中输入,而多行文本框本身不具有限制字数的功能,因此需要编写代码进行控制。本案例实现留言内容字数限制的功能。,4.1留言内容字数限制4 处理多值表单部分论坛网站或网上留言,23,4.2 SESSION,应用,-,用户登录权限,4,处理多值表单,目前绝大部分网站都需要动态发布和管理网站内容,网站内容的管理需要一个管理平台以及具有管理权限的人员。网站的管理平台本质上也是网页,那么如何控制只有经过授权的管理人员才能访问这些页面?本案例实现一个系统登录和用户访问权限控制的功能。,4.2 SESSION应用-用户登录权限4 处理多值表单目,24,谢谢!,谢谢!,25,