Heim >Backend-Entwicklung >PHP-Problem >Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

青灯夜游
青灯夜游Original
2023-01-07 15:47:113843Durchsuche

php页面数据提交方式有get和post两种,区别为:1、get提交在url地址上可以看到参数,post提交在地址栏上看不到参数;2、get不安全,post安全;3、get提交是参数一个一个的提交,post提交是所有参数作为一个整体一起提交;4、get提交一般不超过255个字节,post提交的大小取决于服务器;5、get很灵活,只要有页面的跳转就可以传递参数,而post不灵活。

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

本教程操作环境:windows7系统、PHP8版、DELL G3电脑

在php页面中,提交数据的方式有两种:get方式和post方式。

<form method="post" action=""></form>
<form method="get" action=""></form>

get方式和post方式的区别

1、外观上看

get提交在地址上可以看到参数

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

post提交在地址栏上看不到参数

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

2、安全性

get不安全,post安全

get提交的数据在url栏可以看见,而post提交的数据是不可见的,因此post更安全。

3、提交原理

get提交是参数一个一个的提交

post提交是所有参数作为一个整体一起提交

4、提交数据大小

get提交一般不超过255个字节

post提交的大小取决于服务器

// 在php.ini中,可以配置post提交的大小
post_max_size = 8M

5、灵活性

get很灵活,只要有页面的跳转就可以传递参数

post不灵活,post提交需要有表单的参与

1、 html跳转
   <a>跳转</a>

2、JS跳转
<script>
	location.href='index.php?name=tom&age=20';
	location.assign('index.php?name=tom&age=20');
	location.replace('index.php?name=tom&age=20');
</script>

3、PHP跳转
header('location:index.php?name=tom&age=22')

小结:


GET POST
外观上 在地址上看到传递的参数和值 地址栏上看不到数据
提交数据大小 提交少量数据,不同的浏览器最大值不一样,IE是255个字符 提交大量数据,可以通过更改php.ini配置文件来设置post提交数据的最大值
安全性
提交原理 提交的数据和数据之间在独立的 将提交的数据变成XML格式提交
灵活性 很灵活,只要有页面的跳转就可以get传递数据 不灵活

服务器数据的三种方式

$_POST:数组类型,保存的POST提交的值
$_GET:数组类型,保存的GET提交的值
$_REQUEST:数组类型,保存的GET和POST提交的值

根据提交表单数据的方式不同,获取表单数据的方法也有所不同:get方式可以使用预定义变量$_GET来获取;post方式可以使用预定义变量$_POST来获取;如果不知道 form 表单通过哪种方式提交数据,就可以使用预定义变量$_REQUEST来获取,它两种方式的数据都可以获取。

下面就来一一了解:

1、使用预定义变量$_GET快速获取表单数据(form表单需要设置为method="get"

在程序的开发过程中,由于 GET 方法提交的数据是附加到 URL 上发送的,因此在 URL 的地址栏中将会显示“URL+用户传递的参数”类型的信息,如下所示:

http://url?name1=value1&name2=value2 ...
  • name1、name2 为表单元素的名称(有表单元素的name属性设置),value1、value2 为表单元素的值。url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是“name=value”,固定不变。

我们添加一下user.html文件的表单看看URL 的地址栏

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

user.php文件中可以直接使用预定义变量$_GET来获取数据,$_GET 全局变量是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。(注只要是 URL 中的参数都可以使用 $_GET 获取。)

<?php
var_dump($_GET);
?>

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

可以使用$_GET['键名']的方式来一一获取每个表单元素的值:

<?php
header("content-type:text/html;charset=utf-8");
echo "用户名为:".$_GET['user']."<br>生日为:".$_GET['bday'];
?>

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

2、使用预定义变量$_POST快速获取表单数据(form表单需要设置为method="post"

post方法不依赖于 URL,不会将传递的参数值显示在地址栏中。

$_POST 全局变量也是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。

<?php
header("content-type:text/html;charset=utf-8");
echo "用户名为:".$_POST['user']."<br>生日为:".$_POST['bday'];
?>

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

3、使用预定义变量$_REQUEST快速获取表单数据

$_REQUEST 全局变量是一个包含了  $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。

<?php
header("content-type:text/html;charset=utf-8");
var_dump($_REQUEST);
echo "用户名为:".$_REQUEST['user']."<br>生日为:".$_REQUEST['bday'];
?>

Was sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?

小结: 

 1、在开发的时候,如果明确是post提交就使用$_POST获取,如果明确get提交就用$_GET获取 

 2、request获取效率低,尽可能不要使用,除非提交的类型不确定的情况下才使用。

推荐学习:《PHP视频教程

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen den PHP-Seitenübermittlungsmethoden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn