Tutorial Form PHP Part 2: Perbedaan Metode Pengiriman Form GET dan POST dalam PHP

Salah satu pertimbangan dasar dalam membuat dan memproses form PHP adalah apakah form tersebut dikirim menggunakan method=get atau method=post. Dalam tutorial kali ini kita akan membahas dan mempelajari keunggulan dan kelemahan masing-masing metode pengiriman form ini.


Keunggulan dan Kelemahan Method Form ‘GET’

Kelemahan yang paling jelas jika kita menggunakan method=get adalah nilai dari form dapat dilihat langsung di dalam URL yang dikirimkan. Jika anda membuat form untuk data-data yang sensitif seperti password, maka form dengan method=get bukanlah pilihan yang tepat.

Form dengan method=get disarankan untuk form yang berfungsi menampilkan data, yaitu dimana hasil isian form hanya digunakan untuk menampilkan data, sesuai dengan arti kata get yang bisa berarti: ‘ambil’. Sehingga method=get sebaiknya digunakan untuk form yang ‘mengambil’ data dari database.

Salah satu penggunaan method=get yang umum digunakan adalah pada form pencarian (form search). Dengan membuat hasil inputan form terlihat jelas dalam URL, pengunjung web bisa dengan mudah menebak ‘alur kerja’ dari situs kita. Bahkan pengunjung bisa membuat aplikasi pencarian sendiri dengan memanfaatkan fasilitas ini.

Sebagai contoh, di dalam situs duniailkom, kotak input search di kanan atas halaman ini dibuat dengan method=get. Misalkan kita ingin mencari seluruh postingan yang berkaitan dengan ‘Form PHP’, maka kita bisa mengetikkan kata ‘Form PHP’, kemudian men-klik tombol enter di keyboard. Beberapa saat kemudian, hasil pencarian akan ditampilkan. Jika diperhatikan alamat URL pada web browser, akan berubah menjadi:

http://www.duniailkom.com/?s=form+php&submit=Search

Hasil URL ini merupakan query pencarian default yang digunakan oleh wordpress (CMS yag digunakan di duniailkom).

Setelah nama domain www.duniailkom.com, selanjutnya kita melihat karakter ?s=form+php&submit=Search. Karakter-karakter ini adalah hasil format form dengan metode=get. Tanda ? menandakan awal nilai form, tanda + untuk menandakan spasi, dan tanda & untuk memisahkan objek form. Dengan memanfaatkan keterangan ini, kita bisa melakukan pencarian hanya melalui URL secara lansung, tanpa harus melalui form.

Sebagai contoh, jika anda ingin mencari semua postingan dengan kata kunci ‘Integer dalam PHP’, maka anda bisa menggunakan link berikut:

http://www.duniailkom.com/?s=integer+dalam+php&submit=Search

Untuk mengujinya, silahkan copypaste text tersebut ke address bar web browser, dan situs duniailkom akan langsung menampilkan hasil pencarian dengan kata kunci ‘Integer dalam PHP’. Hal ini membuat halaman web menjadi lebih fleksibel.

Untuk contoh lainnya, jika anda mengikuti tutorial Form HTML ini dari Part 1, maka kita memiliki file proses.php yang berfungsi untuk memproses hasil form. Fleksibilitas yang diberikan oleh variabel $_GET membuat kita bisa menampilkan nilai dalam proses.php tanpa menggunakan form sama sekali.

Jika isi dari file proses.php adalah:

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

Kita bisa membuat langkah yang sama seperti contoh di dalam pencarian ‘Integer dalam PHP’ sebelumnya. Sekarang copy paste URL berikut ini kedalam address bar web browser (pastikan aplikasi XAMPP sudah berjalan dan file proses.php berada di dalam folder belajar_form):

http://localhost/belajar_form/proses.php?nama=fajar&email=fajar%40gmail.com

Method GET dapat ditampilkan dengan menambahkan nilai di URLDan hasil tampilan halaman proses.php akan menampilkan nama fajar dan alamat email [email protected]. Hasil ini didapat hanya dengan menginput nama tersebut dengan URL (tanpa form).

Dari contoh ini kita bisa melihat bahwa PHP mendeteksi nilai dari method=get, hanya berdasarkan URL yang diberikan. Cara ‘mengakali’ variabel $_GET tanpa form ini sering digunakan sebagai sarana untuk mengirim sebuah nilai dari satu halaman PHP ke halaman lainnya (sering digunakan untuk menampilkan pesan error kepada user).

Karena sifat method=get yang harus menggunakan URL untuk mengirim data form, PHP membatasi hanya bisa memproses 1024 karakter saja. Sehingga jika anda memiliki form yang isinya kemungkinan akan melebihi 1024 karakter, sebaiknya menggunakan method=post.


Keunggulan dan Kelemahan Method Form ‘POST’

Keuntungan mengunakan method=post dalam pembuatan form PHP adalah bahwa isi dari form tidak ditampilkan di URL, sehingga method ini sesuai untuk data-data yang bersifat sensitif seperti username dan password.

Sesuai dengan namanya, method=post disarankan digunakan untuk form yang digunakan untuk menambah data (posting data) atau sebuah proses yang akan mengubah isi database, seperti query Insert, Delete. Contoh penggunaan method=post ini sering digunakan untuk form register dan form login yang diaggap bersifat rahasia.

Jika kita membuat form untuk keperluan upload file (menggunakan tag <input type=file>), maka kita harus membuat form dengan method=post.


Sebagai kesimpulan terakhir, pilihan antara method=get dengan method=post bergantung kepada tingkat sensitifitas data. Untuk data yang sensitif seperti password atau yang melakukan suatu perubahan ke database, sebaiknya menggunakan method=post. Namun untuk data yang ditujukan untuk menampilkan, atau mengambil sesuatu dari database, sebaiknya menggunaan method=get.


Tutorial Terkait:

16 Comments

  1. Sandi
    02 Mar 15
  2. hendro
    11 Jul 15
    • Andre
      15 Jul 15
  3. annisa
    24 Feb 16
    • Andre
      24 Feb 16
      • annisa
        24 Feb 16
  4. Pilan
    23 Jul 16
    • Andre
      24 Jul 16
  5. Richie
    03 Nov 16
    • Andre
      04 Nov 16
    • Richie
      04 Nov 16
  6. M Rizky Ramadhani
    15 Dec 16
    • Andre
      15 Dec 16
    • Andre
      16 Jan 17

Add Comment