实例讲解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(4) php 函数 补充2
Feb 15 PHP
memcached 和 mysql 主从环境下php开发代码详解
May 16 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
PHP读取RSS(Feed)简单实例
Jun 12 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
PHP实现上传文件并存进数据库的方法
Jul 16 PHP
PHP正则表达式过滤html标签属性(DEMO)
May 04 PHP
PHP session 会话处理函数
Jun 06 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
Dec 24 PHP
PHP微信支付结果通知与回调策略分析
Jan 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
php面向对象全攻略 (九)访问类型
2009/09/30 PHP
PHP常用的小程序代码段
2015/11/14 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP编程计算日期间隔天数的方法
2017/04/26 PHP
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
基于jQuery实现的查看全文功能【实用】
2016/12/11 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
js实现淡入淡出轮播切换功能
2017/01/13 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
js实现上传并压缩图片效果
2018/01/10 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
2019/04/28 jQuery
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
浅谈django中的认证与登录
2016/10/31 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
python 创建一维的0向量实例
2019/12/02 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
Armor Lux法国官方网站:水手服装、成衣和内衣
2020/05/26 全球购物
应届专科生个人的自我评价
2014/01/05 职场文书
2014年教师节寄语
2014/04/03 职场文书
人事专员岗位说明书
2014/07/29 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
英语教师求职信范文
2015/03/20 职场文书
质量整改通知单
2015/04/21 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
2016年寒假生活小结
2015/10/10 职场文书
励志语录:只有自己足够强大,才能不被别人践踏
2020/01/09 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python