文章目录
表单
-
定义:表单就是form,用于集合不同类型的用户输入
-
语法格式
<form name="" action="" method="">
- action: 点击之后将要执行的.php文件
- 若省略,则表单内容提交到当前URL
- method: 默认为get,有两个选项,post和get
- action: 点击之后将要执行的.php文件
-
get和post区别
- get:浏览器和action属性指定的URL建立连接,将数据直接敷在表单的action URL之后。这两者之间用 ? 进行分隔,参数之间用 & 进行分隔。
- post:浏览器和action属性指定的URL建立连接,通过HTTP协议把表单数据发送给服务器端的PHP程序。
post get 安全性 更好。所有名称会被嵌入HTTP请求的主题中,对他人不可见。 较差。表单参数会直接显示在地址栏的URL里 效率 较低,因为读取和解码相对复杂 较好 数据量 默认为不受限制 小于2kb
表单处理
文本框
-
实现文本输入功能
-
使用
input
标签 -
语法格式
<p><input type="text" name="name"></p><!--//输入文本类型变量:name--> <p><input type='submit'></p><!--//添加提交按钮-->
单选按钮
-
使用
input
标签,设置type="radio"
-
语法格式
<input type="radio" name="radiobutton" value="同意">同意<br>
复选框
-
使用
input
标签,设置type="checkbox"
-
语法格式
<input type="checkbox" name="checkbox[]" value="同意">同意<br>
- name:此处要加上 [] ,自动解析成数组
- 否则会出现值覆盖的问题
- name:此处要加上 [] ,自动解析成数组
下拉列表
-
通过
select
和option
标签来实现 -
语法格式
<select name="lunch_type[]"> <option selected>不限</option> <option>豪华自助</option> <option>街头小吃</option> <option>普通盒饭</option> </select>
select
标签支持多选,应当在name属性之后加上[],使之解析成数组
重置按钮
-
使用
input
标签,设置type="reset"
-
语法格式
<input type="reset" value="重置">
提交按钮
-
使用
input
标签,设置type="submit"
-
语法格式
<input type="submit" value="提交">
表单验证
$_SERVER[“PHP_SELF”]变量
- 超级全局变量
- 返回当前正在执行脚本的文件名
- 会发送表单数据到当前页面,而不是跳转到不同的页面
- 可能会被黑客使用
- 恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行
- 使用
htmlspecialchars()
函数可解决
htmlspecialchars() 函数
- 把一些预定义的字符转换为HTML实体
- 预定义字符:
- & (和号) 成为
&
; - " (双引号) 成为
"
; - ’ (单引号) 成为
'
; - < (小于) 成为
<
; - > (大于) 成为
>
;
- & (和号) 成为
提交表单
- 使用
trim()
函数去除输入数据中不必要的字符 - 使用
stripslashes()
函数去除输入中的反斜杠\
- 提交之前使用
htmlspecialchars()
处理
函数示例
function test($a)
{
$a=trim($a);
$a=stripslashes($a);
$a=htmlspecialchars($a);
return $a;
}
验证
-
preg_match()
函数:用于正则表达式匹配-
函数原型:
int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )
-
在 $subject 字符串中搜索与 $pattern 给出的正则表达式相匹配的内容
-
$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本
-
$_GET变量
-
用于收集来自 method=“get” 的表单中的值。
- 变量显示在 URL 中,因此可以在收藏夹中收藏该页面
- 表单域的名称会自动成为 $_GET 数组中的键
$_POST变量
-
用于收集来自 method=“post” 的表单中的值。
- 变量不会显示在 URL 中,因此不可以把该页面加入书签
$_REQUEST变量
- 变量包含了
$_GET、$_POST
和$_COOKIE
的内容 - 可用来收集通过 GET 和 POST 方法发送的表单数据