实例讲解PHP表单处理


Posted in PHP onFebruary 15, 2019

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 方法也能得到相同的结果:

实例

<html>
<body>

<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

"welcome_get.php" 是这样的:

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>

上面的代码很简单。不过,最重要的内容被漏掉了。您需要对表单数据进行验证,以防止脚本出现漏洞。

注意:在处理 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 表单!

PHP 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
php写的带缓存数据功能的mysqli类
Sep 06 PHP
PHP基础知识介绍
Sep 17 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
PHP实现采集中国天气网未来7天天气
Oct 15 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
php生成图片缩略图的方法
Apr 07 PHP
php实现用已经过去多长时间的方式显示时间
Jun 05 PHP
php实现的日历程序
Jun 18 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
老生常谈PHP 文件写入和读取(必看篇)
May 22 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 #PHP
PHP7 echo和print语句实例用法
Feb 15 #PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
Feb 15 #PHP
PHP Include文件实例讲解
Feb 15 #PHP
PHP XML Expat解析器知识点总结
Feb 15 #PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 #PHP
PHP fopen函数用法实例讲解
Feb 15 #PHP
You might like
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
javascript OFFICE控件测试代码
2009/12/08 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
js实现微信分享代码
2020/10/11 Javascript
详解iframe与frame的区别
2016/01/13 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
JavaScript获取客户端IP的方法(新方法)
2016/03/11 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
BootStrap Validator使用注意事项(必看篇)
2016/09/28 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
Vue 处理表单input单行文本框的实例代码
2019/05/09 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
python计算日期之间的放假日期
2018/06/05 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
利用promise及参数解构封装ajax请求的方法
2021/03/24 Javascript
优秀教师先进事迹
2014/01/22 职场文书
《桂花雨》教学反思
2014/04/12 职场文书
与美同行演讲稿
2014/09/13 职场文书
专业技术人员年度考核评语
2014/12/31 职场文书
php 原生分页
2021/04/01 PHP
pandas提升计算效率的一些方法汇总
2021/05/30 Python
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
Go结合Gin导出Mysql数据到Excel表格
2022/08/05 Golang