数据的发送与接收

我们在前面的内容“变量”里简单提到过【预定义变量】,而现在我们要进行数据传输就需要用到两个预定义变量:【$_POST】跟【$_GET】。

本期要点:

数据是怎么从前端发送到后端的?

get 与 post 传送数据有什么区别?

$_POST 传送数据

$_POST 变量是一个数组,属于 PHP 所提供的预定义变量。

$_POST 变量用于收集来自 method=”post” 的表单中的值。

例:

HTML 代码:

我们把之前

三小时学会网页设计

中的代码简化一下:

数据发送与接收

保存文件名为 index.html 放在集成环境的指定目录下。

windows 系统的 xampp 默认是在 xamp\htdocs\ 目录

mac 系统自带环境默认在/Library/WebServer/Documents/ 目录

不太了解的可以去看一下前几期的内容:PHP丨第一个PHP程序中的【PHP文件代码放在哪】及【如何测试代码】章节。

PHP 代码:

var_dump( $_POST);

保存文件名为 formsave.php 同样也放在集成环境的指定目录下。

测试效果:

在浏览器地址栏中中输入 localhost/index.html 或 127.0.0.1/index.html (注意一定要在浏览器地址栏输入,不能直接双击打开 HTML文件):

在输入框里随便填写一些内容,点击“提交”按钮:

浏览器中所打印出来的信息:

如果我们需要取 HTML 中 aa 的值,我们只需要:

var_dump( $_POST['aa');

效果:

总结:

HTML 表单必须有 name 属性

HTML 表单必须包含在 form 标签中,必须有 action ,必须有method='post'

$_GET 传送数据

$_GET 也是 PHP 所提供的预定义变量。用于收集来自 method=”get” 的表单中的值。

$_GET 传参的方式有两种:通过 a 标签点击,或直接修改网址。

例:

HTML 代码:

还是之前的代码,只是把 post 改为 get

数据发送与接收

PHP 代码:

之前的 $_POST 也都改为 $GET

var_dump( $_GET);

测试效果:

测试效果也是一样的

唯一不同的就是它会在地址栏把我们所输入的内容也显示出来了。

用修改网址的方式发送数据:

也就是说,我们可以不通过输入框,直接在网址栏就可以向后台传输信息了。

比如,我们直接在浏览器中输入:http://localhost/formsave.php

然后直接在网址后面加上:?aa=12345&bb=67890

或者我们输入更多:?aa=12345gshgkh&bb=67890las;hga&cc=8y3hkgh

在使用 $_GET 变量时,所有的变量名和值都会显示在 URL 中。

所以在发送密码或其他敏感信息时,不应该使用这个方法。

不过,正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。在某些情况下,这是很有用的。

$_POST 与 $_GET 的区别

前者可以在网址的栏目上是看不到传送的内容的,而后者呢是是可以在网址的栏目是看到内容的。

Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容。

前者传输的内容的大小比较大,安全性比较高,执行效率稍微低一些;后者的上传大小比较小,安全性低,执行的效率会较高一点。

Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框。

This is not the end.

It is not even the beginning of the end.

But it is,

perhaps,the end of the beginning.

更多分享

0 基础教程丨PHP 网站开发

效率工具

小众电影

0 基础教程丨小程序开发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180520A1GR7N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券