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 表单处理相关推荐

  1. struts2.0获取各种表单的数据

    转自:http://www.2cto.com/kf/201107/97883.html 后台代码: 1 import java.util.List; 2 import com.opensymphony ...

  2. 【前端3】jquary:页面加载,选择器,隔行换色,Dom,全选,动画,遍历,广告/抽奖,表单校验插件

    文章目录 1.jquery框架引入:$("mydiv") 当成id选择器 2.jquery版本/对象:$(js对象) -> jquery对象 3.jquery的页面加载事件: ...

  3. httpclient模拟post请求json封装表单数据

    好长时间不更博了,主要肚子里没什么好墨水,哈哈.废话不说上代码. 1 public static String httpPostWithJSON(String url) throws Exceptio ...

  4. 没有form的表单验证_PHP动态生成表单,内置17种常用组件并且支持表单验证!

    FormBuilder 是一个开源的PHP表单生成器,可以快速生成现代化的form表单.还可以配合开源项目 xaboy/form-create 生成任何 Vue 组件 github | 文档 环境需求 ...

  5. 6月17 表单验证

    在服务器端通过tp框架实现表单验证 用户名.密码.重复密码.邮箱.qq.手机号码.爱好.学历 具体步骤: 制作表单 表单form数据通过create()方法收集(验证功能要求我们必须通过create( ...

  6. html:(17):img标签和表单标签

    认识<img>标签,为网页插入图片 在网页的制作中为使网页炫丽美观,肯定是缺少不了图片,可以使用<img>标签来插入图片. 语法: <img src="图片地址 ...

  7. Vue 2.x折腾记 - (17) 基于Ant Design Vue 封装一个配置式的表单组件

    前言 写了个类似上篇搜索的封装,但是要考虑的东西更多. 具体业务比展示的代码要复杂,篇幅太长就不引入了. 效果图 2019-04-25 添加了下拉多选的渲染,并搜索默认过滤文本而非值 简化了渲染的子组 ...

  8. JavaScript基础知识总结 17:JavaScript表单脚本

    目录 一.表单基础 二.提交表单 三.表单字段的公共属性.方法.事件 1.表单字段的公共属性 2.表单字段的公共方法 3.表单字段的公共事件 四.输入过滤,屏蔽字符 五.剪切板事件 六.自动切换 七. ...

  9. 写一个 iOS 复杂表单的正确姿势

    前言 这几天项目的新需求中有个复杂的表单界面,在做的过程中发现要比想象中复杂很多,有好多问题需要处理.有很多东西值得写下来好好梳理下. 需求分析: 6创建网店1.png 上图便是UI根据需求给的高保真 ...

  10. 实现Ant Design 自定义表单组件

    Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法 ...

最新文章

  1. NLPIR智能语义:大数据挖掘助力人工智能快速发展
  2. 令人头疼的字符编码的问题
  3. 皮一皮:误删了一段代码后系统还能跑起来!
  4. poj 2449 A*求k短路
  5. CentOS-6.4-x86_64 下安装mysql5.6
  6. XP硬盘安装Ubuntu 10.10双系统图解(转)
  7. Mac下修改hosts 解决访问github慢的问题
  8. SQL server 2000 和2005中怎么让ldf文档变小
  9. 文理分科 (最小割问题)
  10. 数据类型的转换小结 c# 1614092651
  11. 携程签约日本爱知县 探索主题游促中日交流
  12. VBA学习笔记(6)--抽取第一列中叫“虹虹”的个人信息
  13. Web前端开发工程师常用技术网站整理
  14. 求解无约束最优化问题的共轭梯度法matlab程序,Matlab实现FR共轭梯度法
  15. 抽象代数学习笔记(抽象代数的历史、运算)
  16. 找maven本地仓库
  17. 计算机控制液压同步顶升系统,变频控制同步顶升液压系统
  18. linux压缩到最小命令,Linux 压缩打包命令详细教程
  19. 域名解析指向详细操作(图解)
  20. 3分钟带你了解,软件测试是做什么的!

热门文章

  1. vim 全局替换命令
  2. Pentaho的Mondrian对Hive的支持
  3. 修改数据表DataTable某一列的类型和记录值
  4. PKU 3273  PKU 3258  pku 1905 PKU 3122 二分运用题目
  5. 长假漫漫,不学门可视化图表课程提高下逼格?
  6. 无缝对接Spark与R:Sparklyr系列—探讨属于数据科学家的Spark
  7. 山东单招计算机什么学校好考,2021山东单招最好的公办学校有哪些 山东单招好考的公办学校一览...
  8. String 截取字符串#中间的文本
  9. Django中ORM对数据库的增删改查操作
  10. android - Unable to add window -- token null is not for an application的解决方案