17. PHP 表单处理
PHP 超全局变量 $_GET 和 $_POST 用于收集表单数据(form-data)。
PHP - 一个简单的 HTML 表单
下面的例子显示了一个简单的 HTML 表单,它包含两个输入字段和一个提交按钮:
实例
<html>
<body><form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form></body>
</html>
当用户填写此表单并点击提交按钮后,表单数据会发送到名为 “welcome.php” 的 PHP 文件供处理。表单数据是通过 HTTP POST 方法发送的。
如需显示出被提交的数据,您可以简单地输出(echo)所有变量。”welcome.php” 文件是这样的:
<html>
<body>Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?></body>
</html>
输出:
Welcome John
Your email address is john.doe@example.com
使用 HTTP GET 方法也能得到相同的结果:
上面的代码很简单。不过,最重要的内容被漏掉了。您需要对表单数据进行验证,以防止脚本出现漏洞。
注意:在处理 PHP 表单时请关注安全!
本页未包含任何表单验证程序,它只向我们展示如何发送并接收表单数据。
不过稍后的章节会为您讲解如何提高 PHP 表单的安全性!对表单适当的安全验证对于抵御黑客攻击和垃圾邮件非常重要!
GET vs. POST
GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, …))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。
GET 和 POST 被视作 $_GET 和 $_POST。它们是超全局变量,
这意味着对它们的访问无需考虑作用域 - 无需
任何特殊代码,您能够从任何函数、类或文件访问它们。
$_GET 是通过 URL 参数传递到当前脚本的变量数组。
$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。
何时使用 GET?
通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。
GET 可用于发送非敏感的数据。
注释:绝不能使用 GET 来发送密码或其他敏感信息!
何时使用 POST?
通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。
此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。
不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。
提示:开发者偏爱 POST 来发送表单数据。
接下来让我们看看如何安全地处理 PHP 表单!
17. PHP 表单处理相关推荐
- struts2.0获取各种表单的数据
转自:http://www.2cto.com/kf/201107/97883.html 后台代码: 1 import java.util.List; 2 import com.opensymphony ...
- 【前端3】jquary:页面加载,选择器,隔行换色,Dom,全选,动画,遍历,广告/抽奖,表单校验插件
文章目录 1.jquery框架引入:$("mydiv") 当成id选择器 2.jquery版本/对象:$(js对象) -> jquery对象 3.jquery的页面加载事件: ...
- httpclient模拟post请求json封装表单数据
好长时间不更博了,主要肚子里没什么好墨水,哈哈.废话不说上代码. 1 public static String httpPostWithJSON(String url) throws Exceptio ...
- 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!
FormBuilder 是一个开源的PHP表单生成器,可以快速生成现代化的form表单.还可以配合开源项目 xaboy/form-create 生成任何 Vue 组件 github | 文档 环境需求 ...
- 6月17 表单验证
在服务器端通过tp框架实现表单验证 用户名.密码.重复密码.邮箱.qq.手机号码.爱好.学历 具体步骤: 制作表单 表单form数据通过create()方法收集(验证功能要求我们必须通过create( ...
- html:(17):img标签和表单标签
认识<img>标签,为网页插入图片 在网页的制作中为使网页炫丽美观,肯定是缺少不了图片,可以使用<img>标签来插入图片. 语法: <img src="图片地址 ...
- Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件
前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...
- JavaScript基础知识总结 17:JavaScript表单脚本
目录 一.表单基础 二.提交表单 三.表单字段的公共属性.方法.事件 1.表单字段的公共属性 2.表单字段的公共方法 3.表单字段的公共事件 四.输入过滤,屏蔽字符 五.剪切板事件 六.自动切换 七. ...
- 写一个 iOS 复杂表单的正确姿势
前言 这几天项目的新需求中有个复杂的表单界面,在做的过程中发现要比想象中复杂很多,有好多问题需要处理.有很多东西值得写下来好好梳理下. 需求分析: 6创建网店1.png 上图便是UI根据需求给的高保真 ...
- 实现Ant Design 自定义表单组件
Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...
最新文章
- NLPIR智能语义:大数据挖掘助力人工智能快速发展
- 令人头疼的字符编码的问题
- 皮一皮:误删了一段代码后系统还能跑起来!
- poj 2449 A*求k短路
- CentOS-6.4-x86_64 下安装mysql5.6
- XP硬盘安装Ubuntu 10.10双系统图解(转)
- Mac下修改hosts 解决访问github慢的问题
- SQL server 2000 和2005中怎么让ldf文档变小
- 文理分科 (最小割问题)
- 数据类型的转换小结 c# 1614092651
- 携程签约日本爱知县 探索主题游促中日交流
- VBA学习笔记(6)--抽取第一列中叫“虹虹”的个人信息
- Web前端开发工程师常用技术网站整理
- 求解无约束最优化问题的共轭梯度法matlab程序,Matlab实现FR共轭梯度法
- 抽象代数学习笔记(抽象代数的历史、运算)
- 找maven本地仓库
- 计算机控制液压同步顶升系统,变频控制同步顶升液压系统
- linux压缩到最小命令,Linux 压缩打包命令详细教程
- 域名解析指向详细操作(图解)
- 3分钟带你了解,软件测试是做什么的!
热门文章
- vim 全局替换命令
- Pentaho的Mondrian对Hive的支持
- 修改数据表DataTable某一列的类型和记录值
- PKU 3273 PKU 3258 pku 1905 PKU 3122 二分运用题目
- 长假漫漫,不学门可视化图表课程提高下逼格?
- 无缝对接Spark与R:Sparklyr系列—探讨属于数据科学家的Spark
- 山东单招计算机什么学校好考,2021山东单招最好的公办学校有哪些 山东单招好考的公办学校一览...
- String 截取字符串#中间的文本
- Django中ORM对数据库的增删改查操作
- android - Unable to add window -- token null is not for an application的解决方案