实例讲解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 图像处理类1
Jun 15 PHP
PHP UTF8编码内的繁简转换类
Jul 20 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
header跳转和include包含问题详解
Sep 08 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
ASP和PHP实现生成网站快捷方式并下载到桌面的方法
May 08 PHP
PHP实现显示照片exif信息的方法
Jul 11 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
Apr 09 PHP
PHP使用Pear发送邮件(Windows环境)
Jan 05 PHP
PHP date()格式MySQL中插入datetime方法
Jan 29 PHP
详解PHP 7.4 中数组延展操作符语法知识点
Jul 19 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
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
php去掉文件前几行的方法
2015/07/29 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
跟我学习javascript的垃圾回收机制与内存管理
2015/11/23 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
JS实现分页导航效果
2020/02/19 Javascript
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
2015/05/09 Python
详解Django中的过滤器
2015/07/16 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
单利模式及python实现方式详解
2018/03/20 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
windows支持哪个版本的python
2020/07/03 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
人力管理专业毕业生求职信
2014/02/27 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
销售团队口号大全
2014/06/06 职场文书
关于成绩下滑的自我检讨书
2014/09/20 职场文书
Python虚拟环境virtualenv是如何使用的
2021/06/20 Python
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android