• 【辅导】Task10 掌握PHP表单处理 主要知识点


    本任务主要内容在Task05中已经学习过,此处进一步加深并拓展。

    1、关于表单中的action属性

    在PHP中,表单的action属性若忽略,默认是本网页。

    <form method="post">

     

    个人认为,前一种方法比后一种方法要好。

    2、关于XSS攻击(跨站脚本攻击)

    XSS攻击多出现在评论或留言中,通过在文本中插入特意设计的javascript脚本,窃取登录用户的隐私信息,或进行恶意网址转向。

    因此,用户的留言,必须要去掉html标记或脚本标记,使得这些脚本无法由浏览器执行。

    PHP中通过以下方法来避免脚本攻击,虽只是初级的,但够用了。

    (1)html标记转义,使用htmlspecialchars函数或htmlentities函数

    (2)去除反斜杠(),反斜杠()在javascript中用于字符转义。

    (3)必要时,压缩文本首尾空格。trim

    3、关于Bootstrap H5表单

       

    注意,这些表单控件必须要设置name属性,才能由$_POST变量来获取,获取的是这些控件的value属性的值

    多个CheckBox控件时,name属性要用数组标记,如name= "liking[]"。单个ChceckBox控件时则非必须。PHP中通过$_POST["liking"]获得一个由各value值组成的数组。

    4、关于正则表达式

    Java中,我们介绍过正则表达式,在Task14中,我们也将重新回顾一下正则表达式,学习PHP中的正则表达式函数。对于正则表达式中常用语法要掌握。

     

     思考:如何确定用户由字母组成,至少8位字符? [a-zA-Z0-9]{8,}

    对于邮件认证,可以使用正则表达式(好处是具体要求可自已定义),也可以使用PHP的邮件过滤器函数(以RFC 822为标准):

     

    思考:这个函数可以使用哪些过滤器?(查阅PHP.NET)

    5、关于表单数据跨网页处理

    客户端发起一个http请求,服务端返回数据,则该次http请求结束。无法对客户端的多次http请求进行跟踪,http的无状态性(Stateless)是指服务端无法对同一客户端的多次http请求进行跟踪。

    GET表单通过URL中的查询字符串传输数据,POST表单通过http请求数据包的header部分进行传输。但都只能通过action的网页传输一次。

    像本任务中的用户注册的例子,register.php网页获取POST表单数据,验证其合法性后,需要再传给另外一个网页进行处理(如负责将数据写入数据库)则很难处理。

    本任务中提供2种思路:

    一是构造隐藏表单,通过javascript自行提交给另一网页处理。不多见。

    二是存储在Session中,常见。存储在Session中的数据,本网站的所有网页均可读写。关于Session与Cookie的具体应用,Task13中会详细介绍。

    6、关于实验7

    实验7实际上就是让你照着任务10中的例子,在自己的计算机上实践一遍。再进一步,这个表单由哪些要填报的数据项进行组成,你可自己独立去设计一个不同的。

    比如:你也来设计一个用于每日疫情信息填报的表单? 

  • 相关阅读:
    快速排序 C语言实现
    怎样认识女孩?
    看了你就想结婚!)
    C语言面试题大汇总
    VC6.0下载地址
    STL vector 容器介绍
    Beauty of Maths! Amazing!
    自我参考:Java学习的30个目标
    Beauty of Maths! Amazing!
    采用 Java 持久化框架:选择、时机和优缺点?
  • 原文地址:https://www.cnblogs.com/whitewin/p/12597033.html
Copyright © 2020-2023  润新知