PHP100例PHP处理表单数据
Posted 小雨青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP100例PHP处理表单数据相关的知识,希望对你有一定的参考价值。
目录
哪里需要处理表单
表单在我们的实际项目中很常见,比如
- 官网的联系方式填写
- 微信群收到的问卷调查
涉及到收集用户输入内容的大部分都可以作为表单来处理数据。
怎么接收表单数据
网页作为信息的接收者,一般使用input
标签作为信息输入的载体,常见的表单类型如下,html部分本文不重点展开。
- text 文本
- password 密码
- file 文件
- radio 单选
- checkbox 多选
- hidden 隐藏
- submit 表单提交
- reset 表单重置
在表单外,需要包一层form
标签,如下所示
<form action="action.php" method="post">
<input type="text" name="name" />
<input type="submit" value="Submit" />
</form>
method
有get
和post
两种方式,他们的区别有
- get是把表单的值放在
action
对应的url中,post是放在HTTP HEADER 中的 - 受url长度限制,get的最大数据为2KB
- form的默认方法为get
PHP端接收表单数据的方式,根据传参方式不同也不同
- get通过
$_GET
接收,post通过$_POST
接收,文件通过$_FILES
接收 php://input可以读取没有处理过的POST数据,且不能配置enctype=multipart/form-data
- 一般输入的接收值为字符串,多选
checkbox
接收为数组
如何配置表单相关参数
PHP处理表单的参数,在``php.ini`
- file_uploads 是否允许http上传,默认为On
- upload_tmp_dir 文件上传的临时目录,也就是我们在查看
$_FILES
中看到的tmp_name="/var/tmp/xxx"
- upload_max_filesize 文件上传的最大值
- post_max_size post方式接收数据的最大值,指的是一个表单的全部数据,不是只包含文件
- max_execution_time PHP运行最大时间,默认30秒,配置0为无限制
- max_input_time PHP脚本解析请求的时间,默认60秒,配置0为无限制
- memory_limit 单个脚本的内存限制,无限制为-1
此外,还需要配置所在服务器的上传限制,比如nginx配置client_max_body_size 10M;
,apache 配置LimitRequestBody 10485760
。
怎么保证安全性
如果在项目中,因为网络问题或者用户操作,造成了用户的重复提交表单数据或者订单的重复操作,我们该如何避免呢?
这里就要给出一个概念——幂等性,就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了多余的数据或者额外的结果。
我们可以使用如下方式保证表单提交的幂等性。
- 每次提交带提交的唯一标识,保证不会重复提交多次
- 对于订单这类业务判断订单状态,保证已经操作的订单不允许再次操作
- 前端控制请求操作,没有返回结果之前不允许再次提交
结束语
PHP处理表单提交,总体包含两部分,前端页面和PHP处理,篇幅有限有些内容没有讲透,希望各位在文末留言,以便后续完善补充~
以上是关于PHP100例PHP处理表单数据的主要内容,如果未能解决你的问题,请参考以下文章
PHP表单处理会话管理文件上传文件处理执行函数(10.8 第十六天)