全套课件-PHP程序设计基础教程_完整.ppt

第*页 校验函数 示例9-5.php程序只是利用条件语句对输入值是否为空做了简单判断。事实上,为了方便对常见的数据类型进行验证,PHP语言提供了empty()、is_numeric()、is_null等函数,进一步对表单提交的数据进行验证 ?empty()函数:用于检测变量是否具有空值,空值包括空字符串、0、null或false。如果具有空值,则返回true;否则返回false。 ?is_numeric()函数:用于检测变量是否为数字或数字字符串,如果是返回true;否则返回false。 ?is_null()函数:用于检测变量是否为null,只有一个变量定义了,且它的值是null,才返回true,否则返回falsee。 第*页 form action=9-6.php method=POST label for=输入姓名:/label input type=text name=username /br/br/ label for=输入年龄:/label input type=text name=age /br/br/ input name=submit type=submit value=提交 / /form ?php if ($_SERVER[REQUEST_METHOD]==POST) { $username=$_POST[username]; //获取姓名 if (empty($username)) //判断提交的姓名是否为空 { echo scriptalert(姓名不能为空,请输入姓名!)/script; //弹出消息框提示 exit; } //程序中断,不再向下执行 $age=$_POST[age]; //获取年龄 if (empty($age)) //判断年龄是否为空或0 { echo scriptalert(年龄不能为空或0,请重新输入!)/script; exit; } if (!is_numeric($age)) //判断年龄输入的是否为数字 { echo scriptalert(年龄只能为数字,请重新输入!)/script; exit; } echo 姓名:.$username.br/; echo 年龄:.$age.br/; exit; } ? 第*页 运行结果 第*页 如果不输入姓名,直接点击“提交”按钮,则弹出如图所示的消息框。 运行结果 第*页 如果不输入姓名,直接点击“提交”按钮,则弹出如图所示的消息框。 运行结果 第*页 如果输入姓名,但在输入年龄时输入的不是数字,而是非法的字符,此时点击“提交”按钮,如图9-10所示,程序则会弹出如图所示的消息框。 9.3.3 Web表单安全性验证 在互联网程序设计中,凡是用户提交的数据,我们都会默认它是不安全的,需要进行验证或者过滤,以保证已有的数据不会遭到破坏,或者服务器不被入侵。例如通过Web表单提交一段表单标签,或是浏览器可以执行的JavaScript代码,此时用户提交的数据可以改变网页的正常处理方式甚至篡改服务器数据,这必然会给网站的安全带来风险。示例9-7.php演示了这种风险: 第*页 表单安全漏洞演示程序9-7.php form action=9-7.php method=POST label for=请输入留言:/label textarea name=content/textarea/br/ input type=submit value=提交 / /form ?php if ($_SERVER[REQUEST_METHOD]==POST) { echo 您输入的留言是:.$_POST[content].br/; exit; } ? 第*页 表单安全漏洞演示程序9-7.php 如果页面访问者在留言框输入以下内容: script while(true) alert(嘿嘿嘿,我是恶作剧大王!) /script 然后单击“提交”按钮,此时提交的数据却是一段可执行的脚本代码,代码在服务器端执行,就会在页面中循环弹出对话框,导致页面无法正常浏览, 第*页 9.3.3 Web表单安全性验证 script 标签内能够添加任何 JavaScript 代码!黑客能够把用户重定向到另一台服务器上的某个文件,该文件中

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档