PHP表单教程_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > PHP表单教程

PHP表单教程

 2018/3/7 17:19:28  青春..荒唐  程序员俱乐部  我要评论(0)
  • 摘要:【前言】今天开始总结PHP表单相关的知识点,在这里记录总结下【概论】【列表】(1)表单元素总结回顾(前端);(2)数据处理(后端);【主体】(1)表单元素总结回顾①表单的作用?用于搜集不同类型的用户输入②表单元素有哪些?不同类型的input元素、复选框、单选按钮、提交按钮等等。例如:<inputtype="text">定义文本输入<inputtype="radio">定义单选按钮<inputtype="checkbox">定义多选按钮<
  • 标签:PHP 教程 表单

【前言】

? ? ? ?今天开始总结PHP表单相关的知识点,在这里记录总结下

?

【概论】

?

【列表】

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

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

?

【主体】

(1)表单元素总结回顾

? ? ? ? ①表单的作用?

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

? ? ? ? ②表单元素有哪些?

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

class="html"><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)

? ? ??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=%E6%B5%B7%E8%B4%BC%E7%8E%8B&
                         lastname=%E6%BC%AB%E7%94%BB

?

这里经过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)

?

?

?

?

?

?

.

发表评论
用户名: 匿名