Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST

Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST

WBOY
WBOYasal
2021-10-29 16:28:434461semak imbas

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!

Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST

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[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_GET[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_GET[&#39;age&#39;];
 ?>

Hasil output:

Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST

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

pembolehubah

$_GET $_POST$_POST dalam contoh di atas Kita bercakap tentang pembolehubah method="post", sekarang mari kita lihat pembolehubah

Pembolehubah

yang dipratentukan digunakan untuk mengumpul nilai daripada borang dalam $_GET. php.ini post_max_sizeMaklumat yang dihantar daripada borang dengan kaedah POST tidak kelihatan kepada sesiapa dan tidak akan dipaparkan dalam bar alamat penyemak imbas seperti pembolehubah

dan tidak mempunyai kesan ke atas jumlah maklumat yang dihantar . Walau bagaimanapun, secara lalai, jumlah maksimum maklumat yang dihantar melalui kaedah POST ialah 8 MB, yang boleh ditukar dengan menetapkan

dalam fail.

Seterusnya mari kita lihat contoh:
<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>


Kandungan yang diserahkan kepada demo.php ialah:
<?php
 header("Content-type:text/html;charset=utf-8");    //设置编码
 echo "你的姓名是:" .$_POST[&#39;name&#39;] ."<br/>";
 echo "你的性别是:"  .$_POST[&#39;sex&#39;]."<br/>";
 echo "你的年龄是:".$_POST[&#39;age&#39;];
 ?>


Hasil Output :

Pembelajaran bentuk PHP: Penggunaan dan perbezaan pembolehubah $_GET dan $_POST

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 getpost

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; 🎜>

Jika anda berminat, anda boleh klik pada "

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn