HTML表单处理
一、表单简介
表单的处理是一个多进程。首先创建一张表单,以供用固话输入详细的请求信息。接着,输入的数据被发送到服务器,在服务器里这些数据得到编译和错误检测。如果PHP代码识别出一个或多个需要重新输入的字段,则带有相关错误信息的表单会被重新显示。当精确的输入信息满足代码的需要时,代码会采取一些调用数据库的行动。
要建立一个表单,至少要有下面这些元素:
- 一个打开的<form>和关闭的</form>标记
- 一个指定POST或GET方法的提交类型
- 一个或多个输入字段
- 表单数据提交的目的地址
<?phpe //formtext.php
if(isset($_POST['name'])) $name = $_POST['name'];
else $name = "(not entered)"; echo <<<_END
<html>
<head>
<title>Form Text</titile>
</head>
<body>
<form method="post" action="formtext.php">
What is your name?
<input type="text" name="name" />
<input type="submit" />
</form>
</body>
</html>
_END;
?>
PHP的isset()函数用来测试变量是否已经被赋值。
二、输入类型
HTML表单非常灵活,允许提交各种类型的输入,常见的有:文本框、文本域、复选框和单选按钮等。
1.文本框:以单行的形式接受各种字母、文字和其他字符,一般文本框的输入格式如下:
<imput type="text" name="name" size="size" maxlength="length" value="value" />
name参数设定输入数据的名称,当表单传到PHP文件时可以使用 $_POST['name']或$_GET['name'] 获取输入的文本;size参数用于设置文本框的宽度;maxlength参数允许指定输入字符的最大长度;value参数用于指定默认值。
2.文本域:和文本框类似,但允许多行输入,文本域的输入格式如下:
<textarea name="name" cols="width" rows="hight" wrap="type">Text</textarea>
wrap参数用于控制换行,可选参数值有:不换行的(off)、换行,当一串字符没有回车换行时发送给服务器(soft)、换行,当一串字符有软回车时以换行格式发送给服务器(hard)。
3.复选框:为用户提供不同的选项,以供用户选择其中的一个或几个,使用格式如下:
<input type="checkbox" name="name" value="value" checked="checked" />
引入checked参数,当浏览器显示时,复选框已被选定。若不包含这个参数,复选框则显示未被检测。
注意:如果允许依次选中多个条目,要将它们赋予相同的名字。然而,这样只有最后一个被选中的条目会被提交,除非把数组作为名字来传递。
<form method="post" action="mytest.php">
Vanilla <input type="checked" name="ice" values="vanilla" />
Chocolate <input type="checked" name="ice" values="chocolate" />
Strawberry <input type="checked" name="ice" values="strawberry" />
</form>
上面表单中,如果只有一个复选框被选中,那就只有一项会被提交(即字段ice会被赋予的值);但如果有两个或多个被选中,只有最后一个选中的值会被提交,先前的值会被忽视。想提交多个选择,我们要用数组来传递,对上面的代码做一点小小的额修改:
<form method="post" action="mytest.php">
Vanilla <input type="checked" name="ice[]" values="vanilla" />
Chocolate <input type="checked" name="ice[]" values="chocolate" />
Strawberry <input type="checked" name="ice[]" values="strawberry" />
</form>
这样,当表单被提交时,如果选中其中任意项,一个叫做ice的数组将被提交,数组包含所有选中的值。
4.单选按钮:用于从两个或多个选项中只选择一个。一组中的所有按钮必须使用相同的名字,因为只有一个单值被返回,所以不需要数组传递。
<form method="post" acthion="mytest.php">
8am-Noon<input type="radio" name="time" value="1" /> |
Noon-4pm<input type="radio" name="time" value="2" /> |
4pm-8pm<input type="radio" name="time" value="3" />
</form>
5.select标记:用于创建下拉选项列表,提供了单选或多选。使用格式如下:
<select name="name" size="size" multiple="multiple">
size参数表示要显示的行数,即在网页上同时显示的选项的数量;multiple参数用于让用户按住Ctrl键后可以从列表中点击选择多个选项。另外,如果想给定默认选项,可以使用selected参数,将参数的值设置为"selected"就可以了。
<form method="post" action="mytest.php">
Vegetables : <select name="veg" size="2" multiple="multiple">
<option value="Peas">Peas</option>
<option value="Beans">Beans</option>
<option value="Carrots">Carrots</option>
<option value="Cabbage">Cabbage</option>
<option value="Broccoli">Broccoli</option>
</select>
</form>
6.lebel标记:运用标记可以环绕表单元素,通过点击<label>标记间的任意可见部分使表单可选,给用户一个良好的体验。
<label>8am-Noon<input type="radio" name="time" value="1" /></label>
7.Submit按钮:提交表单的按钮,为了适应被提交表单的类型,可以通过使用value参数的值改变提交按钮的标题名,也可以通过使用选定的图片来替代标准的文本按钮。
<input type="submit" name="mysubmit" value="这是一个提交按钮" />
<input type="image" name="submit" src="data:image.gif" />
三、输入净化
在处理从用户得到的信息之前,绝不能轻易相信任何从$_GET或$_POST数组中得到的变量。如果没有这么做,用户可能会尝试将JavaScript插入到这些数据中来干扰你的网站的操作,或企图添加MySQL命令来损坏你的数据库。
<?php
$variable = $_POST['user_input']; function sanitizeString($var)
{
if (get_magic-quotes_gpc()) $var = stripslashes($var); //除去字符里的反斜线"\"
$var = htmlentities($var); //把字符转化为HTML实体
$var = strip_tage($var); //去除字符中的HTML标签
return $var;
} function sanitizeString($var)
{
$var = mysql_real_escape_string($var); //转义sql使用的特殊字符
$var = sanitizeString($var);
return $var;
}
?>
HTML表单处理的更多相关文章
- ASP.NET Aries 入门开发教程9:业务表单的开发
前言: 经过前面那么多篇的列表的介绍,终于到了大伙期待的表单开发了. 也是本系列的最后一篇文章了! 1:表单页面的权限设置与继承 对于表单页面,权限的设置有两种: 1:你可以选择添加菜单(设置为不显示 ...
- 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
其实任何资料里面的任何知识点都无所谓,都是不重要的,重要的是学习方法,自行摸索的过程(不妥之处欢迎指正) 汇总:http://www.cnblogs.com/dunitian/p/4822808.ht ...
- jQuery学习之路(8)- 表单验证插件-Validation
▓▓▓▓▓▓ 大致介绍 jQuery Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求.该插件捆绑了一套有用的验证方法,包括 ...
- jQuery学习之路(5)- 简单的表单应用
▓▓▓▓▓▓ 大致介绍 接下来的这几个博客是对前面所学知识的一个简单的应用,来加深理解 ▓▓▓▓▓▓ 单行文本框 只介绍一个简单的样式:获取和失去焦点改变样式 基本结构: <form actio ...
- 12、Struts2表单重复提交
什么是表单重复提交 表单的重复提交: 若刷新表单页面, 再提交表单不算重复提交. 在不刷新表单页面的前提下: 多次点击提交按钮 已经提交成功, 按 "回退" 之后, 再点击 &qu ...
- .net erp(办公oa)开发平台架构概要说明之表单设计器
背景:搭建一个适合公司erp业务的开发平台. 架构概要图: 表单设计开发部署示例图 表单设计开发部署示例说明1)每个开发人员可以自己部署表单设计至本地一份(当然也可以共用一套开发环境,但是如 ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
- 玩转spring boot——AOP与表单验证
AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...
- from表单提交数据之后,后台对象接受不到值
如果SSH框架下,前段页面通过from表单提交数据之后,在后台对象显示空值,也就是接收不到值得情况下.首先保证前段输入框有值,这个可以在提交的时候用jQuery的id或者name选择器alert弹出测 ...
- form表单验证-Javascript
Form表单验证: js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等.完整代码如下: <!DOCTYPE html PUBLIC &qu ...
随机推荐
- 区块链 POS和POW的区别
如果你是一名资深的比特币矿工或商人,你一定听说过POW和POS,否则,很难理解. 读完本文,相信会让你明白,原来,虚拟货币除了挖矿,还有利息! 第一段:通俗的概念解析 POW:全称Proof of W ...
- Html介绍,认识html标签
什么是网页?网页就是我们我们提前写好的代码样式经过浏览器的渲染展示出来的样式效果.其实我们常说的上网就是浏览各式各样的网页,这些网页都是由html标签组成,下面就是一个简单的网页,效果图如下: 简单看 ...
- css基础-css选择器和css文本样式相关
css基础-css选择器和css文本样式相关: 使用link链入外部样式,页面加载时会同时加载样式 @import url(“*.css”);使用导入式,页面加载完后,才会加载样式 链接伪类的顺序 : ...
- Java WebService 简单实例-服务端和客户端
转载自ITeye:https://www.iteye.com/topic/1135747/
- 论文阅读笔记(十四)【AAAI2020】:Appearance and Motion Enhancement for Video-based Person Re-identification
Introduction 本文的贡献:提出了基于视频的行人重识别模型:Appearance and Motion Enhancement Model(AMEM).该模型对两类信息进行提取:提出了App ...
- linux - 查看是否安装 JDK
看看 是否设置了jdk环境变量: echo $JAVA_HOME: 或运行命令: java -verion 看看能否查看版本 ,能就是运行: 或者查看后台进程:ps -ef|grep java.
- 小白的java学习之路 “ 数组”
数组 一.什么是数组: 数组是一个变量,存储相同数据类型的一组数据 声明一个变量就是在内存空间划出一块合适的空间 声明一个数组就是在内存空间划出一串连续的空间 二.数组基本要素: 标识符:数组的名称, ...
- Pikachu-Unsafe Filedownload(不安全的文件下载)
不安全的文件下载概述 文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文 ...
- 数据库中间件DBLE学习(一) 基础介绍和快速搭建
dble基本架构简介 dble是上海爱可生信息技术股份有限公司基于mysql的高可用扩展性的分布式中间件.江湖人送外号MyCat Plus.开源地址 我们首先来看架构图,外部应用通过NIO/AIO进行 ...
- 第60届IMO 第5题
题目 巴斯银行发行的硬币在一面上铸有H,在另一面上铸有T,哈利有枚这样的硬币并将这些硬币从左至 右排成一行,他反复地进行如下操作:如果恰有k(>0)枚硬币H面朝上,则他将从左至右的第k枚硬币 ...