实例讲解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 JSON 数据解析代码
May 26 PHP
ubuntu 编译安装php 5.3.3+memcache的方法
Aug 05 PHP
php守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
php在服务器执行exec命令失败的解决方法
Mar 03 PHP
解析MySql与Java的时间类型
Jun 22 PHP
使用Composer安装Yii框架的方法
Mar 15 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
PHP简单检测网址是否能够正常打开的方法
Sep 04 PHP
基于PHP实现短信验证码接口(容联运通讯)
Sep 06 PHP
PHP使用strrev翻转中文乱码问题的解决方法
Jan 13 PHP
在云虚拟主机部署thinkphp5项目的步骤详解
Dec 21 PHP
PHP+redis实现微博的推模型案例分析
Jul 10 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
下载文件的点击数回填
2006/10/09 PHP
php之CodeIgniter学习笔记
2013/06/17 PHP
Smarty模板学习笔记之Smarty简介
2014/05/20 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
php微信公众号开发之微信企业付款给个人
2018/10/04 PHP
JS 字符串连接[性能比较]
2009/05/10 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
JS判断用户用的哪个浏览器实例详解
2018/10/09 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
Python中利用原始套接字进行网络编程的示例
2015/05/04 Python
python中日志logging模块的性能及多进程详解
2017/07/18 Python
Python数据类型之Number数字操作实例详解
2019/05/08 Python
Django  ORM 练习题及答案
2019/07/19 Python
Python模块_PyLibTiff读取tif文件的实例
2020/01/13 Python
pytorch实现seq2seq时对loss进行mask的方式
2020/02/18 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
a标签下载链接的简单实现
2016/09/13 HTML / CSS
一套PHP的笔试题
2013/05/31 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
市场营销管理制度
2014/01/29 职场文书
节能减耗标语
2014/06/21 职场文书
群教个人对照检查材料
2014/08/20 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
导游经典开场白——导游词
2019/04/17 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL
python开发的自动化运维工具ansible详解
2021/08/07 Python
Python中如何处理常见报错
2022/01/18 Python