php 数据分别是怎么传的_PHP丨数据的发送与接收

203279946_1_20200927051013680_wm

我们在前面的内容“变量”里简单提到过【预定义变量】,而现在我们要进行数据传输就需要用到两个预定义变量:【$_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 代码:<?php

var_dump( $_POST);

?>

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

测试效果:

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

203279946_2_20200927051013727_wm

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

203279946_3_20200927051013883_wm

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

203279946_4_20200927051014102_wm

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

var_dump( $_POST['aa');

?>

效果:

203279946_5_20200927051014321_wm

总结:HTML 表单必须有 name 属性

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

$_GET 传送数据

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

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

例:

HTML 代码:

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

数据发送与接收

PHP 代码:

之前的 $_POST 也都改为 $GET<?php

var_dump( $_GET);

?>

测试效果:

测试效果也是一样的

203279946_6_20200927051014680_wm

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

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

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

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

203279946_7_2020092705101524_wm

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

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

203279946_8_20200927051015212_wm

在使用 $_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.

更多分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值