实例讲解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 相关文章推荐
使用Limit参数优化MySQL查询的方法
Nov 12 PHP
php 全局变量范围分析
Aug 07 PHP
php中判断文件存在是用file_exists还是is_file的整理
Sep 12 PHP
php 定义404页面的实现代码
Nov 19 PHP
基于php-fpm的配置详解
Jun 03 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
Jan 19 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
laravel 实现划分admin和home 模块分组
Oct 15 PHP
PHP实现简单日历类编写
Aug 28 PHP
PHP rsa加密解密算法原理解析
Dec 09 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为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP中怎样防止SQL注入分析
2014/10/23 PHP
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
JS:window.onload的使用介绍
2013/11/13 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
JS实现网页Div层Clone拖拽效果
2015/09/26 Javascript
Javascript 计算字符串在localStorage中所占字节数
2015/10/21 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
浅谈webpack4.x 入门(一篇足矣)
2018/09/05 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
通过扫小程序码实现网站登陆功能
2019/08/22 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python3读取UTF-8文件及统计文件行数的方法
2015/05/22 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
详解如何管理多个Python版本和虚拟环境
2019/05/10 Python
解决pycharm下os.system执行命令返回有中文乱码的问题
2019/07/07 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python PyQt5运行程序把输出信息展示到GUI图形界面上
2020/04/27 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
Django实现后台上传并显示图片功能
2020/05/29 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
全球度假村:Club Med
2017/11/27 全球购物
孕妇内衣和胸罩:Cake Maternity
2018/07/16 全球购物
业务经理岗位职责
2013/11/11 职场文书
新课培训心得体会
2014/09/03 职场文书
学生会主席任命书
2015/09/21 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
redis数据一致性的实现示例
2022/03/18 Redis