实例讲解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 相关文章推荐
php中关于普通表单多文件上传的处理方法
Mar 25 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
解析centos中Apache、php、mysql 默认安装路径
Jun 25 PHP
ThinkPHP表单自动提交验证实例教程
Jul 18 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
PHP也能干大事 随机函数
Apr 14 PHP
深入浅出php socket编程
May 13 PHP
php数组生成html下拉列表的方法
Jul 20 PHP
PHP如何使用Memcached
Apr 05 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
Jul 10 PHP
PHP实现类似于C语言的文件读取及解析功能
Sep 01 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 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中通过ADO调用Access数据库的方法测试不通过
2006/12/31 PHP
php实现分页工具类分享
2014/01/09 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
javascript特殊用法示例介绍
2013/11/29 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
node.js中的fs.writeFile方法使用说明
2014/12/14 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
详解vue2.0监听属性的使用心得及搭配计算属性的使用
2018/07/18 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
vue地址栏直接输入路由无效问题的解决
2018/11/15 Javascript
vue与原生app的对接交互的方法(混合开发)
2018/11/28 Javascript
解决layui-open关闭自身窗口的问题
2019/09/10 Javascript
[01:23:45]DOTA2-DPC中国联赛 正赛 CDEC vs Dragon BO3 第一场 1月22日
2021/03/11 DOTA
Python中列表(list)操作方法汇总
2014/08/18 Python
python 获取url中的参数列表实例
2018/12/18 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
python turtle 绘制太极图的实例
2019/12/18 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
函授毕业生自我鉴定
2013/11/06 职场文书
简历的个人自我评价范文
2014/01/03 职场文书
应聘英语教师求职信
2014/04/24 职场文书
企业党员一句话承诺
2014/05/30 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
毕业生银行实习自我鉴定
2014/10/14 职场文书
python中print格式化输出的问题
2021/04/16 Python
Django与数据库交互的实现
2021/06/03 Python
Hive导入csv文件示例
2022/06/25 数据库