首页 后端开发 php教程 PHP表单学习之$_GET与$_POST变量的使用与区别

PHP表单学习之$_GET与$_POST变量的使用与区别

Oct 29, 2021 pm 04:28 PM
php 表单验证

在之前的文章中给大家带来了《PHP表单学习之怎样验证表单中的邮件和URL?》,其中详细的介绍了PHP中表单中怎样验证邮件与URL的相关知识,本篇文章我们来看一下PHP中的$_GET 变量与$_POST 变量。希望对大家有帮助!

PHP表单学习之$_GET与$_POST变量的使用与区别

在之前的文章中我们已经了解了怎样去验证必需数据,以及怎样去通过正则表达式来验证表单中的邮件与URL。其中就有$_GET 变量与$_POST 变量的影子,接下来我们就来看一看$_GET 变量与$_POST 变量使用的相关知识。

<span style="font-size: 20px;">PHP $_GET </span>变量

我们前面在学习的时候已经了解到了 $_GET 变量用于收集来自 method="get" 的表单中的值。从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。其实也可以看成是通过 URL 参数传递给当前脚本的变量的数组。

在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法。不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

接下来我们通过示例来看一下:

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.php" method="get">
     名字: <input type="text" name="name"><br>
     性别:<input type="radio" name="sex" value="男" checked>男
     <input type="radio" name="sex" value="女">女<br>
     年龄: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>
登录后复制

提交到demo.php的内容为:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_GET[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_GET[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_GET[&#39;age&#39;];
 ?>
登录后复制

输出结果:

1029.19.png

我们发现我们在表单填写的值,都显示在Url栏中。那么我们在什么时候使用 method="get"呢。

在 HTML 表单中使用 method="get" 时,所有的变量名和值都会显示在 URL 中。所以在发送密码或其他敏感信息时,不应该使用这个方法!然而,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

其中需要注意的是:HTTP GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。

<strong><span style="max-width:90%">$_POST</span></strong> 变量

在上述示例中我们讲到了$_GET 变量,接下来我们就来看一下$_POST 变量,预定义的 $_POST 变量用于收集来自 method="post" 的表单中的值。

从带有 POST 方法的表单发送的信息,对任何人都是不可见的也不会像$_GET 变量一样显示在浏览器的地址栏,并且对发送信息的量也没有限制。然而,默认情况下,POST 方法的发送信息的量最大值为 8 MB,可以通过设置 php.ini 文件中的 post_max_size 进行更改。

接下来我们通过示例来看一下:

<html>
 <head>
     <meta charset="utf-8">
     <title>php中文网(php.cn)</title>
 </head>
 <body>
 
 <form action="demo.php" method="post">
     名字: <input type="text" name="name"><br>
     性别:<input type="radio" name="sex" value="男" checked>男
     <input type="radio" name="sex" value="女">女<br>
     年龄: <input type="text" name="age"><br>
     <input type="submit" value="提交">
 </form>
 
 </body>
 </html>
登录后复制

其中提交到demo.php的内容为:

<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_POST[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_POST[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_POST[&#39;age&#39;];
 ?>
登录后复制

输出结果:

1029.20.png

其中我们看到,我们用POST提交的信息,没有在Url 栏中显示,所以,POST 比GET 要更为安全一点。下面我们来总结一下$_GET与$_POST的区别。

<strong><span style="font-size: 20px;">$_GET</span></strong>$_POST的区别

get是从服务器上获取数据,post是向服务器传送数据。

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。

对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

 get安全性非常低,post安全性较高。但是执行效率却比Post方法好。

将它俩的区别整理为一个表格,表格如下:


$_GET $_POST
在url中的显示 会有字符数限制的显示在URL中
不会显示在URL中
提交的数据量上 一般是低于2k的少量数据 PHP默认可以提交8M的大量数据
在安全性上 不安全 较为安全
提交原理 提交的数据都是孤立的 将数据作为一个整体提交
灵活性 很灵活,有页面跳转就可以传递数据 不灵活,必须要有表单的参与
常用性 较为常用 与$_GET相比较少

通过区别我们能够得出:

  • get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

  • 在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是PHP表单学习之$_GET与$_POST变量的使用与区别的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

我后悔之前不知道的 7 个 PHP 函数 我后悔之前不知道的 7 个 PHP 函数 Nov 13, 2024 am 09:42 AM

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

php程序在字符串中计数元音 php程序在字符串中计数元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? 什么是PHP魔术方法(__ -construct,__destruct,__call,__get,__ set等)并提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。

See all articles