实例讲解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学习笔记 IIS7下安装配置php环境
Oct 29 PHP
PHP提示Notice: Undefined variable的解决办法
Nov 24 PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 PHP
php 不使用js实现页面跳转
Feb 11 PHP
php中session使用示例
Mar 29 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
列举PHP的Yii 2框架的开发优势
Jul 03 PHP
PHP实现事件机制的方法
Jul 10 PHP
PHP7.0安装笔记整理
Aug 28 PHP
php自定义分页类完整实例
Dec 25 PHP
eclipse php wamp配置教程
Jun 30 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维护文件系统
2006/10/09 PHP
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
php过滤敏感词的示例
2014/03/31 PHP
ThinkPHP3.2.3数据库设置新特性
2015/03/05 PHP
php编写简单的文章发布程序
2015/06/18 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
突发奇想的一个jquery插件
2010/11/19 Javascript
js的写法基础分析
2011/01/17 Javascript
JS实现简单的顶部定时关闭层效果
2014/06/15 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
手把手教你vue-cli单页到多页应用的方法
2018/05/31 Javascript
jQuery实现聊天对话框
2020/02/08 jQuery
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
深入解析Python中的WSGI接口
2015/05/11 Python
python实现二叉查找树实例代码
2018/02/08 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
浅析pandas 数据结构中的DataFrame
2019/10/12 Python
python获取栅格点和面值的实现
2020/03/10 Python
python 绘制场景热力图的示例
2020/09/23 Python
Python通过getattr函数获取对象的属性值
2020/10/16 Python
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
教师申诉制度
2014/01/29 职场文书
工厂门卫岗位职责范本
2014/04/04 职场文书
初中生操行评语大全
2014/04/24 职场文书
任命书标准格式
2015/03/02 职场文书
读书笔记格式
2015/07/02 职场文书
2019个人工作总结
2019/06/21 职场文书
MySQL去除重叠时间求时间差和的实现
2021/08/23 MySQL
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS