PHP学习笔记二表单表单处理,表单验证,表单实例总结_第1页
PHP学习笔记二表单表单处理,表单验证,表单实例总结_第2页
PHP学习笔记二表单表单处理,表单验证,表单实例总结_第3页
PHP学习笔记二表单表单处理,表单验证,表单实例总结_第4页
PHP学习笔记二表单表单处理,表单验证,表单实例总结_第5页
已阅读5页,还剩5页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

1、PHP学习笔记(二):表单:表单处理, 表单验证,表单实例PHP表单PHP超全局变量 $_GET和$_POST用于收集表单数据(form-data )o1GET vs. POSTGET 和 POST 都创建数组(例如,array( key = value, key2 = value2, key3 = value3, )。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。GET和POST被视作 GET和_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域-无需任何特殊代码,您能够从任何函数、类或文件访问它们。$_GET是通过URL参数传递到当前脚本的变量数组。$

2、_POST是通过HTTP POST传递到当前脚本的变量数组。何时使用GET ?通过GET方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在URL中)。GET对所发送信息的数量也有限制。限制在大于2000个字符。不过,由于变量显示在 URL中,把页面添加到书签中也更为方便。GET可用于发送非敏感的数据。何时使用 POST?通过POST方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP请求的主体中),并且对所发送信息的数量也无限制。此外POST支持高阶功能,比如在向服务器上传文件时进行multi-part二进制输入。不过,由于变量未显示在URL中,也就无法将页面添加

3、到书签。PHP表单验证PHP表单验证实例PHP表单验证fhf表单验证实例*必堺宇段电邮:网址:评论:性别:女性奧性*上面的表单使用如下验证规则:曲悠盹含聿埒Kj空軒E-mai必旳含育栽的电孑曲期止(如含 10 J *Websfte可送*枷送興 啦锁含祸独的URL-匚 omment司jft*费行1臥手用Gender文本字段代码是这样的:ame、email和 website属于文本输入元素,comment字段是文本框。HTMLName: E-mail: Website: Comme nt: 单选按钮gender字段是单选按钮,HTML代码是这样的:Gen der:FemaleMale表单元素 表单

4、的HTML代码是这样的:当提交此表单时,通过method=” post”发送表单数据。什么是 $_SERVER “PHP_SELF ” 变量?$_SERVER”PHP_SELF”是一种超全局变量,它返回当前执行脚本的文件名。因此,$_SERVER”PHP_SELF”将表单数据发送到页面本身,而不是跳转到另一张页面。 这样,用户就能够在表单页面获得错误提示信息。什么是 htmlspecialchars()函数?htmlspecialchars()函数把特殊字符转换为 HTML 实体。这意味着 之类的 HTML 字符会被替换为 &It;和>。这样可防止攻击者通过在表单中注入HTML或Java

5、Script代码(跨站点脚本攻击)对代码进行利用。关于PHP表单安全性的重要提示$_SERVER “ PHP_SELF ”变量能够被黑客禾U用!如果您的页面使用了PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。提示:跨站点脚本(Cross-site scripting , XSS)是一种计算机安全漏洞类型,常见于 Web应用程序。XSS能够使攻击者向其他用户浏览的网页中输入客户端脚本。假设我们的一张名为“test_form.php ”的页面中有如下表单:form method=post actio n=”1现在,如果用户进入的是地址栏中正常的URL :“ http:/www.

6、/test_form.php ,上面的代码会转换为:1到目前,一切正常。不过,如果用户在地址栏中键入了如下URL :/test_form.php/%22%3E%3Cscript%3Ealert(hacked)%3C/script%3E1在这种情况下,上面的代码会转换为:alert(hacked)v/script1这段代码加入了一段脚本和一个提示命令。并且当此页面加载后,就会执行JavaScript代码(用户会看到一个提示框)。这仅仅是一个关于PHP_SELF变量如何被利用的简单无害案例。您应该意识到 标签内能够添加任何 JavaS

7、cript代码!黑客能够把用户重定向到另 一台服务器上的某个文件,该文件中的恶意代码能够更改全局变量或将表单提交到其他地址 以保存用户数据,等等。女口果避免 $_SERVER “ PHP_SELF ”被禾U用?通过使用 htmlspecialchars()函数能够避免 $_SERVER “PHP_SELF”被利用。表单代码是这样的:form method=post actio n=1htmlspecialchars()函数把特 殊字符转换为 HTML 实体。现在,如果用户试图利用 PHP_SELF变量,会导致如下输出:alert(hacked)1无法利用,没有危害!通过PHP验证表单数据我们要

8、做的第一件事是通过PHP的htmlspecialchars()函数传递所有变量。在我们使用 htmlspecialchars()函数后,如果用户试图在文本字段中提交以下内容:locatio n.href()1代码不会执行,因为会被保存为转义代码,就像这样:<script >locati on .href()</script >1现在这条代码显示在页面上或e-mail中是安全的。在用户提交该表单时,我们还要做两件事:(通过PHP trim()函数)去除用户输入数据中不必要的字符(多余的空格、制

9、表符、换行)(通过PHP stripslashes()函数)删除用户输入数据中的反斜杠()接下来我们创建一个检查函数(相比一遍遍地写代码,这样效率更好)。我们把函数命名为test_ in put()。现在,我们能够通过 test_input()函数检查每个 $_POST变量,脚本是这样的: 请注意在脚本开头,我们检查表单是否使用$_SERVER“ REQUEST_METHOD ”进行提交。如果 REQUEST_METHOD 是POST,那么表单已被提交 -并且应该对其进行验证。 如果未提交,则跳过验证并显示一个空白表单。PHP表单验证-必填字段本节展示如何制作必填输入字段,并创建需要时所用的错

10、误消息。PHP -输入字段从上一节中的验证规则中,我们看到“Name” , “E-mail以及 “Gender字段是必需的。这些字段不能为空且必须在HTML表单中填写。曲A 她合京好相空处E-mail必flh总馳含聶刪电轴件抱址电含打相WebsiteComment可灌參行输入宇用*Gender裁如翊硼一帥在上一节中,所有输入字段都是可选的。在下面的代码中我们增加了一些新变量:$nameErr $emailErr、$genderErr以及 $websiteErr。这些错误变量会保存被请求字段的错误消息。我们还为每个$_POST变量添加了一个ifelse语句。这条语句检查 $_POST变量是否为空

11、(通过 PHP empty()函数)。如果为空, 则错误消息会存储于不同的错误变量中。如果不为空,则通过test_input()函数发送用户输入数据:PHP -显示错误消息在HTML表单中,我们在每个被请求字段后面增加了一点脚本。如果需要,会生成恰当的错误消息(如果用户未填写必填字段就试图提交表单):Name: * E-mail:* Website:Comme nt: Gender:FemaleMale* 接下来是验证输入数据,即Name字段是否只包含字母和空格?,以及E-mail字段是否包含有效的电子邮件地址语法?,并且如果填写了Website字段,这个字段是否包含了有效的URL ?”。PH

12、P表单验证-验证 E-mail和URL本节展示如何验证名字、电邮和 URL。PHP -验证名字以下代码展示的简单方法检查n ame字段是否包含字母和空格。如果n ame字段无效,则存储一条错误消息:$n ame = test_i nput($_POST name);if (! preg_match(/Aa-zA-Z *$/,$ name) $nameErr =只允许字母和空格!注释:preg_match()函数检索字符串的模式,如果模式存在则返回true,否则返回 false。(正则表达式)PHP -验证 E-mail以下代码展示的简单方法检查e-mail地址语法是否有效。如果无效则存储一条错

13、误消息: $email = test_i nput($_POSTema);if (! preg_match(/(w-+w-+.w-+)/,$email) $emailErr =无效的 email 格式!;PHP -验证 URL以下代码展示的方法检查URL地址语法是否有效(这条正则表达式同时允许URL中的斜杠)。如果URL地址语法无效,则存储一条错误消息:$website = test_i nput($_POSTwebsite);if (! preg_match(八b(?:(?:https?|ftp):W|www.)-a-zO-9+& #V%?=_|!:,.;*-a-zO-9+&#V% =_|/

14、i,$website) $websiteErr = ” 无效的 URL”;PHP -验证 Name、E-mail、以及 URL现在,脚本是这样的:接下来向您讲解如何防止表单在用户提交表单后保留输入字段中的值。PHP -保留表单中的值如需在用户点击提交按钮后在输入字段中显示值,我们在以下输入字段的value属性中增加了一小段 PHP脚本:name、email以及 website。在comment文本框字段中,我们把脚本放到了 与 之间。这些脚本输出$name、$email、$website 和$comment变量的值。然后,我们还需要显示选中了哪个单选按钮。对此,我们必须操作checked属性(而非单选按钮的value属性):

温馨提示

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

评论

0/150

提交评论