PHP - Metode GET & POST

Ada dua cara klien browser dapat mengirim informasi ke server web.

  • Metode GET
  • Metode POST

Sebelum browser mengirimkan informasi, ia mengkodekannya menggunakan skema yang disebut pengkodean URL. Dalam skema ini, pasangan nama / nilai digabungkan dengan tanda yang sama dan pasangan yang berbeda dipisahkan oleh ampersand.

name1=value1&name2=value2&name3=value3

Spasi dihapus dan diganti dengan karakter + dan karakter nonalfanumerik lainnya diganti dengan nilai heksadesimal. Setelah informasi dikodekan, itu dikirim ke server.

Metode GET

Metode GET mengirimkan informasi pengguna yang dikodekan yang ditambahkan ke permintaan halaman. Halaman dan informasi yang dikodekan dipisahkan oleh? karakter.

http://www.test.com/index.htm?name1=value1&name2=value2
  • Metode GET menghasilkan string panjang yang muncul di log server Anda, di kotak Lokasi: browser.

  • Metode GET dibatasi untuk mengirim hingga 1024 karakter saja.

  • Jangan pernah menggunakan metode GET jika Anda memiliki kata sandi atau informasi sensitif lainnya untuk dikirim ke server.

  • GET tidak dapat digunakan untuk mengirim data biner, seperti gambar atau dokumen word, ke server.

  • Data yang dikirim dengan metode GET dapat diakses menggunakan variabel lingkungan QUERY_STRING.

  • PHP menyediakan $_GET asosiatif untuk mengakses semua informasi yang dikirim menggunakan metode GET.

Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.

<?php
   if( $_GET["name"] || $_GET["age"] ) {
      echo "Welcome ". $_GET['name']. "<br />";
      echo "You are ". $_GET['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "GET">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

Ini akan menghasilkan hasil sebagai berikut -

Metode POST

Metode POST mentransfer informasi melalui header HTTP. Informasi dikodekan seperti yang dijelaskan dalam kasus metode GET dan dimasukkan ke dalam tajuk yang disebut QUERY_STRING.

  • Metode POST tidak memiliki batasan ukuran data yang akan dikirim.

  • Metode POST dapat digunakan untuk mengirim ASCII serta data biner.

  • Data yang dikirim dengan metode POST melewati HTTP header sehingga keamanan bergantung pada protokol HTTP. Dengan menggunakan HTTP Aman, Anda dapat memastikan bahwa informasi Anda aman.

  • PHP menyediakan $_POST asosiatif untuk mengakses semua informasi yang dikirim menggunakan metode POST.

Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.

<?php
   if( $_POST["name"] || $_POST["age"] ) {
      if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
         die ("invalid name and name should be alpha");
      }
      echo "Welcome ". $_POST['name']. "<br />";
      echo "You are ". $_POST['age']. " years old.";
      
      exit();
   }
?>
<html>
   <body>
   
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
   
   </body>
</html>

Ini akan menghasilkan hasil sebagai berikut -

Variabel $ _REQUEST

Variabel PHP $ _REQUEST berisi konten dari $ _GET, $ _POST, dan $ _COOKIE. Kami akan membahas variabel $ _COOKIE ketika kami akan menjelaskan tentang cookie.

Variabel PHP $ _REQUEST dapat digunakan untuk mendapatkan hasil dari data formulir yang dikirim dengan metode GET dan POST.

Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.

<?php
   if( $_REQUEST["name"] || $_REQUEST["age"] ) {
      echo "Welcome ". $_REQUEST['name']. "<br />";
      echo "You are ". $_REQUEST['age']. " years old.";
      exit();
   }
?>
<html>
   <body>
      
      <form action = "<?php $_PHP_SELF ?>" method = "POST">
         Name: <input type = "text" name = "name" />
         Age: <input type = "text" name = "age" />
         <input type = "submit" />
      </form>
      
   </body>
</html>

Di sini variabel $ _PHP_SELF berisi nama skrip mandiri yang dipanggil.

Ini akan menghasilkan hasil sebagai berikut -