Rumah > Artikel > pembangunan bahagian belakang > Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST
Dalam artikel sebelum ini, saya membawakan anda " Bagaimana untuk mengesahkan e-mel dan URL dalam borang semasa mempelajari borang PHP? 》, yang memperkenalkan secara terperinci pengetahuan tentang cara mengesahkan e-mel dan URL dalam bentuk dalam PHP Dalam artikel ini, kita melihat pembolehubah $_GET dan pembolehubah $_POST dalam PHP. Semoga ia membantu semua orang!
Dalam artikel sebelumnya, kami telah mempelajari cara mengesahkan data yang diperlukan dan cara mengesahkan e-mel dan URL dalam bentuk melalui ungkapan biasa. Antaranya ialah bayang-bayang $_GET
pembolehubah dan $_POST
pembolehubah Seterusnya, mari kita lihat pengetahuan yang berkaitan tentang penggunaan $_GET
pembolehubah dan $_POST
pembolehubah.
<span style="font-size: 20px;">PHP $_GET </span>
Pembolehubah
Kami telah belajar sebelum ini apabila mengkaji bahawa pembolehubah $_GET
digunakan untuk mengumpul borang daripada nilai method="get"
dalam . Maklumat yang dihantar daripada borang dengan kaedah GET boleh dilihat oleh semua orang (dipaparkan dalam bar alamat penyemak imbas), dan terdapat had pada jumlah maklumat yang dihantar. Malah, ia juga boleh dilihat sebagai tatasusunan pembolehubah yang dihantar kepada skrip semasa melalui parameter URL.
Apabila menggunakan pembolehubah $_GET, semua nama dan nilai pembolehubah akan dipaparkan dalam URL. Jadi kaedah ini tidak boleh digunakan semasa menghantar kata laluan atau maklumat sensitif lain. Walau bagaimanapun, kerana pembolehubah muncul dalam URL, anda boleh menanda halaman halaman tersebut. Dalam sesetengah kes ini berguna.
Seterusnya mari kita lihat contoh:
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.php" method="get"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
Kandungan yang diserahkan kepada demo.php ialah:
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_GET['name'] ."<br/>"; echo "你的性别是:" .$_GET['sex']."<br/>"; echo "你的年龄是:".$_GET['age']; ?>
Hasil output:
Kami mendapati bahawa nilai yang kami isi dalam borang semuanya dipaparkan dalam lajur Url. Jadi bila kita menggunakan method="get"?
Apabila menggunakan method="get"
dalam bentuk HTML, semua nama pembolehubah dan nilai akan dipaparkan dalam URL. Jadi anda tidak seharusnya menggunakan kaedah ini apabila menghantar kata laluan atau maklumat sensitif lain! Walau bagaimanapun, kerana pembolehubah muncul dalam URL, anda boleh menanda halaman halaman tersebut. Dalam sesetengah kes ini berguna.
Perlu diingat bahawa kaedah HTTP GET tidak sesuai untuk nilai pembolehubah yang besar. Nilainya tidak boleh melebihi 2000 aksara.
<strong><span style="font-size: 20px;">$_POST</span></strong>
$_POST
$_GET
$_POST
$_POST
dalam contoh di atas Kita bercakap tentang pembolehubah method="post"
, sekarang mari kita lihat pembolehubah
yang dipratentukan digunakan untuk mengumpul nilai daripada borang dalam $_GET
. php.ini
post_max_size
Maklumat yang dihantar daripada borang dengan kaedah POST tidak kelihatan kepada sesiapa dan tidak akan dipaparkan dalam bar alamat penyemak imbas seperti pembolehubah
dalam fail.
<html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <form action="demo.php" method="post"> 名字: <input type="text" name="name"><br> 性别:<input type="radio" name="sex" value="男" checked>男 <input type="radio" name="sex" value="女">女<br> 年龄: <input type="text" name="age"><br> <input type="submit" value="提交"> </form> </body> </html>
<?php header("Content-type:text/html;charset=utf-8"); //设置编码 echo "你的姓名是:" .$_POST['name'] ."<br/>"; echo "你的性别是:" .$_POST['sex']."<br/>"; echo "你的年龄是:".$_POST['age']; ?>
Kami dapat melihat bahawa maklumat yang kami serahkan menggunakan POST tidak dipaparkan dalam lajur Url, jadi POST lebih selamat daripada GET. Mari kita ringkaskan perbezaan antara $_GET dan $_POST. Perbezaan antara <strong><span style="font-size: 20px;">$_GET</span></strong>
$_POST
$_GET
dan get
post
adalah untuk mendapatkan data daripada pelayan, dan
adalah untuk menghantar data ke pelayan. get menambah baris gilir data parameter ke URL yang ditunjukkan oleh atribut ACTION bagi borang yang diserahkan Nilai sepadan dengan setiap medan dalam borang dan boleh dilihat dalam URL. Siaran menggunakan mekanisme siaran HTTP untuk meletakkan setiap medan dalam bentuk dan kandungannya dalam HEADER HTML dan menghantarnya ke alamat URL yang ditunjukkan oleh atribut ACTION. Pengguna tidak dapat melihat proses ini. Untuk kaedah dapatkan, bahagian pelayan menggunakan Request.QueryString untuk mendapatkan nilai pembolehubah Untuk kaedah pos, bahagian pelayan menggunakan Request.Form untuk mendapatkan data yang diserahkan. Jumlah data yang dipindahkan oleh get adalah kecil dan tidak boleh lebih besar daripada 2KB. Jumlah data yang dihantar melalui pos adalah agak besar dan biasanya tidak terhad secara lalai. Tetapi secara teori, jumlah maksimum ialah 80KB dalam IIS4 dan 100KB dalam IIS5. Dapatkan keselamatan sangat rendah, keselamatan pos adalah tinggi. Tetapi kecekapan pelaksanaan adalah lebih baik daripada kaedah Post. Susun perbezaan antara mereka ke dalam jadual, jadualnya adalah seperti berikut:$_GET | $_POST | |
---|---|---|
在url中的显示 | 会有字符数限制的显示在URL中 |
不会显示在URL中 |
提交的数据量上 | 一般是低于2k的少量数据 | PHP默认可以提交8M的大量数据 |
在安全性上 | 不安全 | 较为安全 |
提交原理 | 提交的数据都是孤立的 | 将数据作为一个整体提交 |
灵活性 | 很灵活,有页面跳转就可以传递数据 | 不灵活,必须要有表单的参与 |
常用性 | 较为常用 | 与$_GET相比较少 |
Melalui perbezaan itu kita boleh membuat kesimpulan:
Kaedah dapatkan kurang selamat daripada kaedah Post Jika maklumat sulit disertakan, adalah disyorkan untuk digunakan Kaedah penghantaran data pos;
Apabila melakukan pertanyaan data, disyorkan untuk menggunakan kaedah Dapatkan apabila melakukan penambahan, pengubahsuaian atau pemadaman data, disyorkan untuk menggunakan kaedah Post; 🎜>
Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.
Atas ialah kandungan terperinci Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!