实例讲解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 配置文件中open_basedir选项作用
Jul 19 PHP
测试php连接mysql是否成功的代码分享
Jan 24 PHP
php实现转换ubb代码的方法
Jun 18 PHP
php比较两个字符串长度的方法
Jul 13 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
分享3个php获取日历的函数
Sep 25 PHP
PHP中的switch语句的用法实例详解
Oct 21 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
Feb 19 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
php metaphone()函数的定义和用法
May 15 PHP
PHP会话控制实例分析
Dec 24 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
PHP中Trait及其应用详解
2017/02/14 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
jQuery)扩展jQuery系列之一 模拟alert,confirm(一)
2010/12/04 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
详解JavaScript时间格式化
2015/12/23 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
在node.js中怎么屏蔽掉favicon.ico的请求
2017/03/01 Javascript
js实现文字列表无缝滚动效果
2017/06/23 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
python中二维阵列的变换实例
2014/10/09 Python
Python 12306抢火车票脚本
2018/02/07 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
python实现函数极小值
2019/07/10 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
详解Django自定义图片和文件上传路径(upload_to)的2种方式
2020/12/01 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
经典C++面试题一
2016/11/06 面试题
交通法规咨询中心工作职责
2013/11/27 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
表彰先进的通报
2014/01/31 职场文书
临床专业自荐信
2014/06/22 职场文书
借名购房协议书范本
2014/10/06 职场文书
领导干部作风建设总结
2014/10/23 职场文书
先进个人主要事迹怎么写
2015/11/04 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书
vue实现简单数据双向绑定
2021/04/28 Vue.js
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
详解CSS3浏览器兼容
2022/12/24 HTML / CSS