Terdapat dua cara untuk menyerahkan data pada halaman PHP: dapatkan dan siarkan Perbezaannya ialah: 1. Anda boleh melihat parameter pada alamat url semasa menghantar dengan get, tetapi anda tidak dapat melihat parameter pada alamat. bar apabila menghantar melalui pos; 2. Dapatkan tidak selamat , kiriman adalah selamat; melebihi 255 bait, dan saiz penghantaran pos bergantung pada pelayan 5. Dapatkan adalah sangat Fleksibel, parameter boleh dilalui selagi terdapat lompatan halaman, manakala pos tidak fleksibel.
Persekitaran pengendalian tutorial ini: sistem windows7, versi PHP8, komputer DELL G3
Dalam halaman php, terdapat dua cara untuk hantar data: dapatkan mod dan mod pos.
<form method="post" action=""></form> <form method="get" action=""></form>
Perbezaan antara kaedah get dan kaedah pos
Penampilan
Parameter boleh dilihat pada bar alamat untuk mendapatkan penyerahan
Parameter tidak boleh dilihat pada bar alamat untuk penyerahan pos
2. Keselamatan
get tidak selamat, pos selamat
Data yang dihantar oleh get boleh dilihat dalam bar url, tetapi data yang dihantar melalui pos tidak kelihatan, jadi pos lebih selamat.
3 Prinsip penyerahan
mendapatkan penyerahan adalah dengan menyerahkan parameter satu persatu
penyerahan pos ialah menyerahkan semua parameter secara keseluruhan
4. Saiz data yang diserahkan
Dapatkan penyerahan secara amnya tidak melebihi 255 bait
Saiz penyerahan pos bergantung pada pelayan
// 在php.ini中,可以配置post提交的大小 post_max_size = 8M
5. Fleksibiliti
Dapatkan sangat fleksibel Anda boleh melepasi parameter selagi terdapat lompatan halaman
Siaran tidak fleksibel borang
1、 html跳转 <a href="index.php?name=tom&age=20">跳转</a> 2、JS跳转 <script type="text/javascript"> location.href=&#39;index.php?name=tom&age=20&#39;; location.assign(&#39;index.php?name=tom&age=20&#39;); location.replace(&#39;index.php?name=tom&age=20&#39;); </script> 3、PHP跳转 header(&#39;location:index.php?name=tom&age=22&#39;)
Ringkasan:
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 的地址栏
user.php文件中可以直接使用预定义变量$_GET来
获取数据,$_GET 全局变量是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。(注只要是 URL 中的参数都可以使用 $_GET 获取。)
<?php var_dump($_GET); ?>
可以使用$_GET['键名']的方式来一一获取每个表单元素的值:
<?php header("content-type:text/html;charset=utf-8"); echo "用户名为:".$_GET[&#39;user&#39;]."<br>生日为:".$_GET[&#39;bday&#39;]; ?>
2、使用预定义变量$_POST快速获取表单数据(form表单需要设置为method="post"
)
post方法不依赖于 URL,不会将传递的参数值显示在地址栏中。
$_POST
全局变量也是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。
<?php header("content-type:text/html;charset=utf-8"); echo "用户名为:".$_POST[&#39;user&#39;]."<br>生日为:".$_POST[&#39;bday&#39;]; ?>
3、使用预定义变量$_REQUEST快速获取表单数据
$_REQUEST 全局变量是一个包含了 $_POST、$_GET 和 $_COOKIE 的数组,数组结构与 $_POST 和 $_GET 类似。
<?php header("content-type:text/html;charset=utf-8"); var_dump($_REQUEST); echo "用户名为:".$_REQUEST[&#39;user&#39;]."<br>生日为:".$_REQUEST[&#39;bday&#39;]; ?>
小结:
1、在开发的时候,如果明确是post提交就使用$_POST获取,如果明确get提交就用$_GET获取
2、request获取效率低,尽可能不要使用,除非提交的类型不确定的情况下才使用。
推荐学习:《PHP视频教程》
Atas ialah kandungan terperinci Apakah perbezaan antara kaedah penyerahan halaman php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!