
想象一下,你是 发展 一个 web 站点 para que los usuarios se inscriban con un nombre y un correo electrónico. 您已经创建了 窗体 在那里他们进入他们的数据的简单. 但, ¿会发生什么 当用户单击的按钮 航运? 如果 完全 您使用 HTML, 真的 不能通过任何东西, 将收取的属性中配置了一页 行动 窗体的.
大多数 web 站点有一些算是 窗体 为 发送信息 由用户, 是否登记表格, 登录窗体, 联系表单, 等. 要能够 救援 通过此窗体发送的数据要做 使用 一些 服务器端的语言, 在这种情况下 PHP.
如何获取, 在 PHP 中, 通过表单发送的数据
为此目的, PHP 拥有 两个变量全球预定义的, 这些都是 $_GET 和 $_POST. 窗体提交到的任何页面时, 这两个变量 保持数据, 取决于航运要执行类型. 有关示例,请参见:
1 | <form action="login.php" method="GET"> |
假设 我们从家里有此标签的窗体. 正如我们可以看到, 此窗体将会发送您的数据, 发送按钮的时间新闻, 到页面 login.php e, 一样, 我们有中属性的配置 方法, 从这个页面您可以获取这些数据通过预定义的变量 $_GET.
如果我用了 方法 =”发布”, 我们将不得不使用的变量 $_POST 收集这些发送的数据. 但, ¿区别是什么 两者之间使用 方法 航运 获取 o 发布?
发送表单使用 GET 方法
为了更好地可视化, 我们将使用的 示例 整个文章. 我们有 简单的窗体 的 访问 我们的网站,我们将不得不介绍私领域我们 用户 和 密码:
1 2 3 4 5 | <form action="login.php" method="GET"> Usuario: <input type="text" name="usuario" /> Contraseña: <input type="password" name="contrasena" /> <input type="submit" name="submit" value="Entrar" /> </form> |
我们看到在这个示例中,窗体将船舶到页 login.php, 在要进行 数据收集 使用变量 $_GET. 另外, 这种形式是与 三个值 为航运. 这些值是在属性中定义 名称 每个标签 输入, 喜欢这个, 这些值是: 用户, 密码并提交.
通过该表单提交的数据的集合
一旦用户 按下按钮 的 输入, 这些数据是 特使 到页面 login.php. 由于此页是我们必须在哪里 对其进行操作. 让我们看看一个例子:
1 2 3 4 5 6 7 | <?php $usuario = $_GET [ 'usuario' ]; $contrasena = $_GET [ 'contrasena' ]; // Realizamos las actuaciones oportunas con estas dos variables ?> |
全局变量 $_GET 存储在 关联数组 你发送到此页面的信息. 获取, 只需同意说数组用作 关键 名称 变量 分配给相应字段的 提交表单 使用属性 名称.
一旦我们有了存储在变量中的值, 可以对它们执行适当的操作: 将它们存储在数据库中, 检查是否是正确的, 向用户显示他们, …
航运和通过 POST 方法发送的数据的集合
发送和收集的数据通过使用窗体上 发布 是制造的一种方式 类似 和, 只是, 他们改变 送货方式 和 收集方法. 让我们看看它:
1 | <form action="login.php" method="POST"> |
这一次, 我们建立了我们 窗体 所以, 航运 进行 方法 发布. 类似于以前的形状, 要查看的页中的数据集合 login.php.
1 2 3 4 5 6 7 | <?php $usuario = $_POST [ 'usuario' ]; $contrasena = $_POST [ 'contrasena' ]; // Realizamos las actuaciones oportunas con estas dos variables ?> |
正如我们可以看到, 窗体 集合 ES 完全相同 除非, 这一次, 我们使它通过预定义的全局变量 $_POST. 一样, 在该变量中, 他们一直, 在窗体的 关联数组, 通过窗体发送的变量.
是的这是这样, 然后, ¿区别是什么 之间将通过表单提交 获取方法 或通过 POST 方法?
在提交表单的 GET 和 POST 方法之间的差异
的 差异 在谎言 如何发送数据. 如果你正在使用 获取方法, 你可以看到,当你点击按钮时 输入, 的 URL 寻呼目的地有点像这个样子:
1 | http://tu-dominio.es/login.php?usuario=prof_falken&contrasena=prueba |
的 获取方法 将追加 各个领域, 以及它们的值, 到目标地址 窗体的, 所以它会 容易 通过简单地观看地址获取这些字段, 尤其是该字段 密码, 这就是 敏感信息. 一样, GET 方法 不允许无限的装运 已经有默认最大值的信息 URL 的长度 造成, 关于 3000 字符 作为最大.
另一方面, 的 POST 方法 并说附到目标 URL 的信息, 但它做什么 在 HTTP 请求的正文内, 所以 是不可见的 给用户. 此方法通常用于发送信息时 个人或机密. 与 GET 方法不同, 开机自检方法 没有最大值 提交资料的大小. 这只会 有界 通过 服务器的配置 目的地.
正如我们所见, 有 两种形式 执行 航运 的一 窗体 数据. 不 podemos usar simplemente HTML 要收集这些数据, 但我们要做 使用 的一 服务器端编程语言, 在这种情况下 PHP. 我们也看到了,, 根据信息的类型,你将要发送, 最好是执行通过 获取方法 或通过使用 POST 方法, 总是同时考虑体积相同及您的隐私.
