实例讲解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 相关文章推荐
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP中如何调用webservice的实例参考
Apr 25 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
php发送post请求的三种方法
Feb 11 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
php使用GeoIP库实例
Jun 27 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
使用PHP实现生成HTML静态页面
Nov 18 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
TP5(thinkPHP框架)实现后台清除缓存功能示例
May 29 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
WebQQ最新登陆协议的用法
2014/12/22 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
深入了解javascript中的prototype与继承
2013/04/14 Javascript
javascript操作excel生成报表示例
2014/05/08 Javascript
JavaScript中的fontsize()方法使用详解
2015/06/08 Javascript
JS实现3D图片旋转展示效果代码
2015/09/22 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
js中作用域的实例解析
2017/03/16 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
浅谈FastClick 填坑及源码解析
2018/03/02 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
python使用mysqldb连接数据库操作方法示例详解
2013/12/03 Python
Python 文件读写操作实例详解
2014/03/12 Python
Python中使用hashlib模块处理算法的教程
2015/04/28 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
2014年党员自我评议对照检查材料
2014/09/20 职场文书
房屋转让协议书
2014/10/18 职场文书
北京英语导游词
2015/02/12 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
Java中的Kotlin 内部类原理
2022/06/16 Java/Android