《PHP》课件4-2 注册信息输入验证_第1页
《PHP》课件4-2 注册信息输入验证_第2页
《PHP》课件4-2 注册信息输入验证_第3页
《PHP》课件4-2 注册信息输入验证_第4页
《PHP》课件4-2 注册信息输入验证_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

本节主要内容什么是表单验证PHP表单的基本验证的内容PHP表单的安全验证的内容为用户注册页面添加表单验证功能为什么要做PHP表单验证表单是HTML中实现用户和系统交互的设计。在通过表单接收用户填写的数据时,表单中的每一个字段都有特定的含义,例如当接收邮箱地址时,就需要验证是不是一个合法的邮箱格式。表单中的各字段还应限制用户输入的长度或者范围。例如,密码要求最少6位,最长10位。对表单的输入数据进行验证,一方面可以保证用户输入的数据符合要求,还可以提高web系统的安全性,对于防范黑客和垃圾邮件很重要。PHP表单的基本验证简单计算器(ch4_5.php):新增一个PHP文件,添加一个表单用来完成简单计算器功能,两个文本框用来输入两个操作数,一个下拉列表用来选择操作符类型,单击提交按钮后跳转到表单处理页面(ch4_5_ok.php)。输入要求:两个输入的数不能为空且必须为数值类型。简单计算器

设计思路:编写一个PHP网页,在页面中添加一个表单,用于编辑计算器的操作数和选择操作符。编写一个表单处理程序,处理表单的数据,并对提交的表单数据进行验证。表单验证失败时,将错误信息显示在页面中。验证表单验证功能是否能正确验证非法数据。简单计算器的设计与实现1)新建名为ch4_5.php的PHP文件2)新建名为ch4_5_ok.php的页面处理文件3)新建一个统一显示校验错误信息的页面error.php4)编写三个文件代码ch4_5_ok.php页面的部分代码<?phpdefine('APP','newsmgs');?>…… //$error数组保存验证后的错误信息

$error=array(); //判断$_POST是否为非空数组 if(!empty($_POST)){ $fields=array('number1','oper','number2'); foreach($fieldsas$v){

$save_data[$v]=isset($_POST[$v])?$_POST[$v]:'';

}

ch4_5_ok.php页面的部分代码

//验证number1字段,若为空或者不是数值,将错误信息保存到$error数组中

if($save_data['number1']==''

||!is_numeric($save_data['number1'])){$error['number1']="操作数1输入有误,输入不能为空或必须为数值";}//验证number2字段,若为空或者不是数值,将错误信息保存到$error数组中

if($save_data['number2']==''||!is_numeric($save_data['number2'])){$error['number2']="操作数2输入有误,输入不能为空或必须为数值";}

ch4_5_ok.php页面的部分代码

//如果$error数组为空,说明没有错误

if(empty($error)){ //表单验证成功

die("表单数据验证成功!");}else{ //表单验证失败,显示错误信息

require'error.php';}die()函数是PHP的系统函数,它的功能是输出一条消息并退出当前程序。error.php<?phpif(!defined('APP'))die('error!');//防止被直接访问?><divclass="error-box">

错误信息如下:

<ul><?php foreach($erroras$v){ if($v!=''){ echo"<li>$v</li>";} } ?></ul>

</div>在网页顶部验证常量APP是否存在,如果不存在,则退出程序,并显示error!。这样做的目的是防止用户直接访问error.php文件PHP表单安全验证输入过滤在开发PHP程序时,为了便于调试,会将用户输入的内容直接显示在网页中。但是网站上线时,如果不对用户的输入做任何过滤,会带来安全风险。$username=$_POST["username"];$userpassword=$_POST["userpassword"];echo"您输入的用户名为:".$username.",密码为:".$userpassword;如果用户输入的是一段脚本,如“<script>alert('ok');</script>”,那么这些代码就会被执行与输入过滤相关的几个函数trim()函数可以去除字符串左右两端的空白字符,包括空格、换行和制表符等。htmlspecialchars()函数可以将字符串中的HTML特殊字符转换为HTML实体字符,从而防止别浏览器解析。stripslashes()函数可以去除字符串中的反斜杠。echotrim("hello,world!");//输出结果:hello,world!

echohtmlspecialchars("<test>");//输出结果:<test>echohtmlspecialchars("<script>alert('ok')</script>");//输出结果:<script>alert('ok')</script>

echostripslashes("Who\'sBillGates?");

//输出结果:Who'sBillGates?PHP表单安全验证数据验证是指验证用户输入数据的合法性,用户输入的数据不仅有长度和范围的要求,还有格式上面的要求,可以通过正则表达式来验证用户输入数据的长度、范围和格式。常用的数据验证的正则表达式验证QQ号码:一个正确的QQ号码,应该是1~9数字开头,从第2位数字开始是0~9的任意数字。QQ号码的长度至少为5位。验证身份证号码:身份证号码是15位或18位数字。验证email地址:一个完整的email地址是由“用户名”、“@”和“服务器域名”三部分组成,用户名可以使用英文字母和数字,服务器域名要符合域名的规则。验证电话号码:国内电话号码是3位区号加8位电话号码或者4位区号加7或者8位电话号码。

/^[1-9][0-9]{4,19}$/

/^\d{15}|\d{18}$/

/^[a-z0-9]+@([a-z0-9]+\.)+[a-z]{2,4}$/i

/^\d{3}-\d{8}|\d{4}-\d{7,8}$/加入验证后的用户注册页面为例4-4中的表单注册功能添加表单验证功能:过滤用户输入的数据,去除一些非法字符。验证一些特殊字段的格式,如密码字段为至少长度为6的字符串,email地址必须为合法的email地址等。加入验证后的用户注册页面设计思路:编写test_input()函数,用于实现用户输入数据过滤。编写checkUsername()函数,用于验证用户名格式是否合法。编写checkPassword()函数,用于验证密码格式是否合法。编写checkConfirmPassword()函数,用于验证密码和重复密码是否一致。编写checkEmail()函数,用于验证邮箱地址是否合法。编写PHP程序,通过引入表单验证函数库验证用户的输入。当表单验证失败时,将错误信息显示在网页中。

测试表单验证功能是否能正确验证非法数据。加入验证后的用户注册页面创建表单验证函数库文件checkFormLib.php,将数据验证相关的函数定义其中。数据验证数据验证是指验证用户输入数据的合法性,用户输入的数据不仅有长度和范围的要求,还有格式上面的要求,可以通过正则表达式来验证用户输入数据的长度、范围和格式。//输入过滤functiontest_input($data){$data=trim($data);//去除左右两端的空白字符$data=stripslashes($data);//去除输入中的反斜杠$data=htmlspecialchars($data);

//将特殊字符转换为实体引用return$data;}//验证密码(长度6~16位,只允许英文字母,数字,下划线)functioncheckPassword($password){ if(!preg_match('/^\w{6,16}$/',$password)){ return'密码格式不符合要求'; } returntrue;}//验证密码和重复密码必须一致functioncheckConfirmPassword($password,$password1){if($password!=$password1){ return'密码和重复密码不一致';}returntrue; }//验证用户名不能为空functioncheckUsername($username){if(!strlen($username)){ return'用户名不能为空';}returntrue; }//验证邮箱(不超过50位)functioncheckEmail($email){

if(strlen($email)>50){

return'邮箱长度不符合要求';

}elseif(!preg_match('/^[a-z0-9]+@([a-z0-9]+\.)+[a-z]{2,4}$/i',$email)){

return'邮箱格式不符合要求';

} returntrue;}引入表单验证的处理页面ch4_4_ok.phprequire'checkFormLib.php';//引入表单验证函数库…

温馨提示

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

评论

0/150

提交评论