Tutorial Form PHP Part 3: Pengertian Variabel SuperGlobals $_GET, $_POST dan $_REQUEST

Dalam tutorial tentang Cara Menampilkan Hasil Form HTML dengan PHP, kita telah membahas sekilas tentang variabel $_GET dan $_POST yang digunakan untuk menampilkan hasil Form HTML, serta perbedaan metoda pengiriman GET dan POST. Dalam tutorial kali ini kita akan membahas lebih dalam tentang pengertian variabel superglobal $_GET, $_POST dan juga $_REQUEST yang digunakan untuk memproses Form dalam PHP.


Pengertian Variabel SuperGlobal dalam PHP

Variabel $_GET dan $_POST (dan juga $_REQUEST) di dalam PHP termasuk ke dalam kelompok variabel yang dikenal dengan ‘Variabel SuperGlobal’.

Variabel SuperGlobals adalah variabel khusus di dalam PHP yang bisa diakses dari halaman PHP manapun tanpa perlu mendefinisikannya terlebih dahulu, dan untuk mengakses variabel ini kita juga tidak perlu menggunakan keyword global (sebagaimana variabel global pada umumnya)

Selain variabel $_GET, $_POST dan $_REQUEST, PHP masih memiliki beberapa variabel superglobal lainnya seperti $_COOKIE, $_SESSION, dan $_SERVER. Ciri khusus untuk variabel global di dalam PHP, diawali dengan tanda $_. Namun pada tutorial ini kita hanya fokus kepada variabel $_GET, $_POST dan $_REQUEST.

Variabel $_GET, $_POST dan $_REQUEST merupakan tipe data array, sehingga untuk mengakses nilainya, kita menggunakan cara akses array yakni dengan menggunakan kurung siku seperti: $_GET[‘nama’] dimana nama adalah nilai dari atribut name pada objek form yang akan diakses.


Perbedaan variabel global $_GET, $_POST dan $_REQUEST

Seperti yang telah kita praktekkan dalam tutorial Cara Menampilkan Hasil Form HTML dengan PHP, kita telah mengetahui bahwa jika form dikirim menggunaan method=get maka di dalam PHP kita mengaksesnya dengan variabel $_GET, namun jika form dibuat menggunakan method=post, kita mengaksesnya dengan variabel $_POST.

Bagaimana jika pada saat memproses form kita tidak mengetahui dengan pasti apakah form dikirim dengan GET atau POST? PHP menyediakan variabel $_REQUEST sebagai salah satu solusinya. Variabel $_REQUEST menampung nilai form yang dikirim dengan method=get, maupun method=post secara bersamaan.

Untuk mencobanya, silahkan jalankan file form.html dengan isi kode HTML sebagai berikut:

<!DOCTYPE html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title>Belajar Form PHP</title>
</head>
<body>
   <h2>Tutorial Belajar Form HTML - PHP </h2>
   <form action="proses.php" method="get">
      Nama: <input type="text" name="nama" />
      <br />
      E-Mail: <input type="text" name="email" />
      <br />
      <input type="submit" value="Proses Data" >
   </form>
</body>
</html>

Tampilan Struktur Form Sederhana HTMLHalaman form.html diatas persis sama dengan yang kita gunakan pada tutorial sebelumnya, namun untuk halaman proses.php, kita akan modifikasi dengan menggunakan variabel $_REQUEST:

<?php
   echo $_REQUEST['nama'];
   echo "<br />";
   echo $_REQUEST['email'];
?>

Jika anda menjalankan form.html dan men-klik tombol ‘Proses Data’, maka hasil form akan ditampilkan sebagaimana mestinya. Anda juga bisa mengubah method form menjadi post, dan variabel $_REQUEST akan tetap menampilkan hasil form.

Jadi, variabel apa yang sebaiknya digunakan? apakah $_GET, $_POST atau $_REQUEST? Jawabannya tergantung kepada desain kode program yang dirancang. Jika anda dapat memastikan bahwa form akan dikirim dengan method=get, maka gunakan variabel $_GET, jika from anda menggunakan method=post, maka gunakan $_POST, namun jika metodanya tidak dapat dipastikan, variabel superglobal $_REQUEST bisa menjadi solusi.

Selain menampung hasil form get dan post, variabel $_REQUEST juga menampung nilai dari cookie, atau variabel superglobals $_COOKIE. Kita akan membahas tentang cookie dalam tutorial PHP lainnya.

Tutorial Terkait:

18 Comments

  1. me
    13 Dec 14
  2. me
    13 Dec 14
    • Andre
      15 Dec 14
  3. Anonymous
    22 Dec 14
    • Andre
      23 Dec 14
  4. aemana
    23 Dec 14
  5. vicky
    18 Aug 15
    • Andre
      18 Aug 15
    • Andre
      08 Oct 15
      • Muh. Iqbal
        18 Jan 16
        • Muh. Iqbal
          18 Jan 16
        • Andre
          19 Jan 16
  6. pemalas
    07 Feb 16
    • Andre
      10 Feb 16
  7. Edi Sutanto
    07 Apr 17
    • Andre
      08 Apr 17

Add Comment