`

PHP表单教程(1)

阅读更多

【前言】

       今天开始总结PHP表单相关的知识点,在这里记录总结下,顺便为ppt教程取材

 

【概论】

主要知识点:

(1)表单元素的回顾;

(2)GET与POST区别;

(3)URL编码相关;

(4)表单数据处理相关; 

 

【列表】

 (1)表单元素总结回顾(前端);

 (2) 数据处理(后端);

           ①表单验证;

           ②表单必填;

           ③表单URL/E-mail;

           ④表单完成;

 (3)GET与POST对比; 

 

【主体】

(1)表单元素总结回顾

        ①表单的作用?

            用于搜集不同类型的用户输入

        ②表单元素有哪些?

           不同类型的 input 元素、复选框、单选按钮、提交按钮等等。例如:

<input type="text"> 定义文本输入
<input type="radio"> 定义单选按钮
<input type="checkbox"> 定义多选按钮
<input type="submit"> 向表单处理程序(form-handler)提交表单的按钮

        ③属性有哪些?具体作用?

    1.action 属性

       定义在提交表单时执行的动作,通常,表单会被提交到 web 服务器上的网页,例如:

<form action="action_page.php">

       在上面的例子中,指定了某个服务器脚本来处理被提交表单。如果省略 action 属性,则 action 会被设置为当前页面

      2.Method 方法属性

         规定在提交表单时所用的 HTTP 方法(GET 或 POST):

<form action="action_page.php" method="GET">
或:
<form action="action_page.php" method="POST">

      3. GET方法(默认方法):

         表单提交是被动的(比如搜索引擎查询),并且没有敏感信息。

         当使用 GET 时,表单数据在页面地址栏中是可见的:

demo.php?firstname=秦&lastname=始皇

         注意:GET 最适合少量数据的提交,浏览器会设定容量限制

       4. POST方法

           如果表单正在更新数据,或者包含敏感信息(例如密码)时,POST的安全性更佳,因为在页面地址栏中被提交的数据是不可见的

       5. Name属性

           规定识别表单的名称(对于 DOM 使用:document.forms.name)。如果要正确地被提交,每个输入字段必须设置一个 name 属性

          下例只会提交 "Last name" 输入字段:

<form action="demo2.php" method="get">
First name:<br>
<input type="text" value="海贼王">
<br>
Last name:<br>
<input type="text" name="lastname" value="漫画">
<br><br>
<input type="submit" value="Submit">
</form>

    action动作属性指定了demo2.php这个脚本来处理被提交表单,下面来看下demo2.php

<?php
echo "我搜索的是" . $_GET['firstname'] . "的" . $_GET['lastname'];
?>

    输出结果:我搜索的是漫画。---->因为未设置name属性,所以并未审查到first name输入的“海贼王”

       6.<fieldset> 标签

          组合表单中的相关数据,将表单内的相关元素分组,当一组表单元素放到 <fieldset> 标签内时,浏览器会以特殊方式来显示它们,它们可能有特殊的边界、3D 效果,或者甚至可创建一个子表单来处理这些元素。

       7.<legend> 标签为 fieldset 元素定义标题  

 

(2)数据处理

      PHP超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)

      ①表单验证;

      ②表单必填;

      ③表单URL/E-mail;

      ④表单完成;

具体我在后面文章里做了总结

拓展:

      GET vs POST :

      ①GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据;

      ②GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,这意味着对它们的访问无需考虑作用域 - 无需任何特殊代码,您能够从任何函数、类或文件访问它们;

      ③$_GET 是通过 URL 参数传递到当前脚本的变量数组;

      ④$_POST 是通过 HTTP POST (http请求主体)传递到当前脚本的变量数组; 

 

 

(3)GET与POST对比

      ①GET 方法

         缺点:

                  1. 发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中);

                  2. 对所发送信息的数量也有限制。限制在大于 2000 个字符;

         优点:

                 由于变量显示在 URL 中,把页面添加到书签中也更为方便

         注意:GET 可用于发送非敏感的数据,绝不能使用 GET 来发送密码或其他敏感信息!

GET实例:

<form action="demo2.php" method="GET">
First name:<br>
<input type="text" name="firstname" value="海贼王">
<br>
Last name:<br>
<input type="text" name="lastname" value="漫画">
<br><br>
<input type="submit" value="Submit">
</form>
<?php
echo "我搜索的是" . $_GET['firstname'] . "的" . $_GET['lastname'];
?>

运行代码,点击搜索后查看效果即可看到URL变为

http://localhost/demo2.php?firstname=海贼王lastname=漫画  

    复制出来后会自动经过URL编码,改为

http://localhost/demo2.php?firstname=%E6%B5%B7%E8%B4%BC%E7%8E%8B&
                         lastname=%E6%BC%AB%E7%94%BB

   这里经过URL编码,具体我在文章URL编码来源及详解 里做过介绍

点击收藏按钮,即可收藏该网页,可以再次打开

 

       ②POST方法

           缺点:

                   由于变量未显示在 URL 中,也就无法将页面添加到书签

           优点:

                   1. 发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中);

                   2. 对所发送信息的数量也无限制;

                   3. 此外POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入

POST实例:

<form action="demo2.php" method="POST">
First name:<br>
<input type="text" name="firstname" value="海贼王">
<br>
Last name:<br>
<input type="text" name="lastname" value="漫画">
<br><br>
<input type="submit" value="Submit">
</form>
<?php
echo "我搜索的是" . $_POST['firstname'] . "的" . $_POST['lastname'];
?>

运行代码,点击搜索后查看效果即可看到URL变为

http://localhost/demo2.php

点击收藏后到收藏夹,但是再次打开会发现数据消失了

 

【总结】

(1)HTML <form> 元素,已设置所有可能的属性

    案例:

<form action="action_page.php" method="GET" target="_blank" accept-charset="UTF-8"
ectype="application/x-www-form-urlencoded" autocomplete="off" novalidate>
.
form elements
 .
</form> 

    下面是 <form> 属性的列表:

accept-charset 规定在被提交表单中使用的字符集(默认:页面字符集)。
action 规定向何处提交表单的地址(URL)(提交页面)。
autocomplete 规定浏览器应该自动完成表单(默认:开启)。
enctype 规定被提交数据的编码(默认:url-encoded)。
method 规定在提交表单时所用的 HTTP 方法(默认:GET)。
name 规定识别表单的名称(对于 DOM 使用:document.forms.name)。
novalidate 规定浏览器不验证表单。
target 规定 action 属性中地址的目标(默认:_self)。

(2)提示:开发者偏爱 POST 来发送表单数据

(3)GET与POST区别的列表:

       ①GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交);

       ②GET书签可收藏,POST为书签不可收藏;

       ③GET能被缓存,POST不能缓存 ;

       ④GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码;

       ⑤GET历史参数保留在浏览器历史中,POST参数不会保存在浏览器历史中;

       ⑥GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符);POST无限制;

       ⑦GET只允许 ASCII 字符,POST没有限制。也允许二进制数据;

       ⑧与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET。POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。

 (4)什么是HTTP?

        超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议。

        HTTP在客户端和服务器之间以request-response protocol(请求-回复协议)工作。

       由于Web服务器不保存发送请求的Web浏览器进程的任何信息,所以HTTP是无状态的。

 (5)为什么GET能保存标签,而POST不能保存?

          GET能被缓存,POST不能缓存 ;

          GET历史参数保留在浏览器历史中,POST参数不会保存在浏览器历史中;

 

 

 

 

 

 

.

分享到:
评论

相关推荐

    头歌PHP语言之表单进阶

    头歌PHP语言之表单进阶 教程 四关教程

    PHP 基础实例教程(PHP网页实例版)

    PHP 表单变量(POST方法) PHP 表单变量(GET方法) PHP 字符串的连接 PHP heredoc语法 PHP 变量 PHP 变量的名称要求 给 PHP 变量赋值 PHP 变量类型 PHP 变量类型转换 PHP 可变变量 PHP 变量的有效范围 PHP 文件操作 PHP...

    form_php简单表单验证页面_

    总结起来,"form_php简单表单验证页面"项目是一个基础的PHP教程,涵盖了HTML表单创建、PHP接收和验证表单数据、错误处理以及用户体验优化等多个方面,是学习PHP web开发的良好起点。通过这个项目,初学者可以理解...

    web表单设计器扩展 php示例

    总的来说,"web表单设计器扩展 php示例"是一个关于如何在PHP环境下开发和扩展表单设计功能的实践教程。通过学习和实践,开发者不仅可以创建出功能丰富的表单,还能提升自己在前端和后端开发方面的能力,更好地服务于...

    php教程 php教程

    这个“PHP教程”显然涵盖了学习PHP编程的基础和进阶内容,让我们来深入探讨一下PHP的核心概念、语法结构以及在实际应用中的重要性。 1. PHP基础: - **安装与配置**:PHP可以在多种操作系统上运行,如Windows、...

    HTML5系列教程-HTML5表单提交和PHP环境搭建

    在"HTML5系列教程-HTML5表单提交和PHP环境搭建"中,我们将深入探讨两个核心主题:HTML5表单的新特性以及如何配置PHP开发环境。 首先,HTML5对表单元素进行了大幅度的升级,提供了更多的输入类型,如`...

    PHP基础到高级开发教程-24 PHP的表单.mp4

    PHP基础到高级开发教程-24 PHP的表单.mp4

    表单验证详细教程(chm)

    1. PHP验证:PHP作为常见的服务器端语言,可以通过if条件语句、正则表达式等方式对用户输入进行验证,防止非法数据进入数据库。 2. ASP.NET验证:提供多种验证控件,如RequiredFieldValidator、RegularExpression...

    PHP与HTML表单的综合应用.rar

    本教程以"PHP与HTML表单的综合应用"为主题,旨在教你如何设计并处理一个基于PHP的个人简历登记表,帮助用户输入和提交个人信息。 一、HTML表单基础 HTML表单是网页中用于用户输入数据的元素集合,通过`&lt;form&gt;`标签...

    PHP Web应用开发教程.rar

    【PHP Web应用开发教程】 PHP(Hypertext Preprocessor,超文本预处理器)是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。本教程针对的是那些希望通过学习PHP来构建动态、交互式网站的学生或初学...

    PHP v4 动态网站开发实用教程

    这本教程覆盖了PHP的基础语法、数据库交互、表单处理、session与cookie管理、错误与日志处理、文件操作以及安全防护等多个关键领域。 1. PHP基础语法:PHP是一种服务器端脚本语言,其语法结构清晰,易于学习。教程...

    PHP初级入门教程二本

    5. **表单处理**:讲解如何使用PHP接收和处理HTTP表单数据,进行用户输入验证。 6. **错误与异常处理**:指导如何正确地捕获和处理运行时错误,以及利用异常处理机制提高代码健壮性。 第二本教程《PHP基础教程.pdf...

    PHP自学教程 详细教程

    1. 变量:PHP变量以$符号开头,无需提前声明类型,例如 `$name = "张三";` 2. 数据类型:包括字符串、整型、浮点型、布尔型、数组、对象、NULL等。 3. 输出:使用`echo`或`print`语句输出内容。 4. 控制结构:如条件...

    传智播客_韩顺平_php从入门到精通 视频教程 第006讲

    传智播客_韩顺平_php从入门到精通 视频教程 第006讲 浮动窗口 表单及表单控件

    PHP专业基础教程PHP专业基础教程

    1. **表单处理**: PHP可以接收通过HTTP发送的表单数据,使用 `$_GET` 和 `$_POST` 超全局数组访问。 2. **URL参数**: 通过 `$_GET` 变量处理URL中的查询字符串,`$_REQUEST` 包含 `$_GET`, `$_POST` 和 `$_COOKIE` ...

    php十大项目php开发教程

    PHP支持多种数据库系统,如MySQL,可以处理表单数据、生成动态网页、执行数据库操作等。其语法结构与C语言相似,易于学习,但同时也具备强大的功能。 "PHP经典教程"部分,可能包含了一系列的基础教学,比如变量声明...

    史上最全PHP5基础精讲教程

    ...Output Control输出函数.doc ...PHP表单处理.doc PHP语法-数组.doc PHP随机显示目录下图片的源码.doc strlen与mb_strlen字符串长度函数.doc strtok()函数实际应用.doc 文件函数.txt 研究批量删除数据的方法.doc

    PHP网站开发案例教程

    1. **PHP基础**:介绍PHP语言的基本语法,包括变量、数据类型、控制结构(如条件语句和循环)、函数和数组等。读者将学习如何在PHP中编写和执行简单的脚本。 2. **MySQL数据库**:讲解如何创建、管理数据库以及操作...

    PHP英文教程

    1. PHP的定义和特点 PHP(Hypertext Preprocessor)是一种被广泛用于网页开发的服务器端脚本语言,其语法借鉴了C、Java和Perl语言,并包含一些PHP特有的功能。PHP最初被创建为一种用于处理动态网页的工具,它允许...

    PHP学习视频教程 由浅入深.zip

    1. PHP环境搭建:介绍如何安装WAMP/LAMP/MAMP等开发环境,设置PHP运行所需的服务。 2. PHP基础语法:讲解变量、常量、数据类型、运算符、控制结构(如if/else、switch、for、while等)。 3. 函数:定义函数、使用...

Global site tag (gtag.js) - Google Analytics