实例讲解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 4.2书写安全的脚本
Oct 09 PHP
PHP 5.0 Pear安装方法
Dec 06 PHP
PHP 处理图片的类实现代码
Oct 23 PHP
遍历指定目录下的所有目录和文件的php代码
Nov 27 PHP
PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
Dec 05 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
destoon各类调用汇总
Jun 20 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
php设计模式之委托模式
Feb 13 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
详细对比php中类继承和接口继承
Oct 11 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
PHP小技巧搜集,每个PHPer都来露一手
2007/01/02 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
javascript实时获取鼠标坐标值并显示的方法
2015/04/30 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
js+html制作简单验证码
2017/02/16 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
Vue $attrs &amp; inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
python中__call__方法示例分析
2014/10/11 Python
python黑魔法之编码转换
2016/01/25 Python
Django入门使用示例
2017/12/12 Python
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
好邻里事迹材料
2014/01/16 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
教学质量评估实施方案
2014/03/17 职场文书
申论倡议书范文
2014/05/13 职场文书
心术观后感
2015/06/11 职场文书
离职信范本
2015/06/23 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers