实例讲解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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
一家之言的经验之谈php+mysql扎实个人基本功
Mar 27 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
php模拟用户自动在qq空间发表文章的方法
Jan 07 PHP
php检查页面是否被百度收录
Oct 28 PHP
php编程中echo用逗号和用点号连接的区别
Mar 26 PHP
Smarty保留变量用法分析
May 23 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
php 常用的系统函数
Feb 07 PHP
laravel清除视图缓存的代码
Oct 23 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 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
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
JS 时间显示效果代码
2009/08/23 Javascript
JS 对象介绍
2010/01/20 Javascript
jQuery ajax 路由和过滤器使用说明
2011/08/02 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
jQuery查找节点并获取节点属性的方法
2016/09/09 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
Vue3.0中的monorepo管理模式的实现
2019/10/14 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[01:13:18]Secret vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
Python Socket多线程并发原理及实现
2020/12/11 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
应届生财务会计求职信
2013/11/05 职场文书
追悼会上的答谢词
2014/01/10 职场文书
毕业自我评价
2014/02/05 职场文书
暑期培训随笔感言
2014/03/10 职场文书
业务员的岗位职责
2014/03/15 职场文书
企业厂务公开实施方案
2014/03/26 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
教师自我剖析材料(四风问题)
2014/09/30 职场文书
刘胡兰观后感
2015/06/16 职场文书