Tutorial PHP : #12 Form Pada PHP

Pada tutorial ini akan di jelaskan tentang bagaimana cara menangkap data yang diinput atau mengolah data inputan pada form. Ada dua metode yang digunakan untuk mengolah form inputan, yaitu GET dan POST.

Dalam dunia internet, protokol yang umum digunakan adalah protokol HTTP, protokol ini memiliki beberapa metode request (request method) diantaranya adalah dari GET dan POST, jadi GET dan POST ini berdiri sendiri tidak berhubungan dengan bahasa pemrograman seperti PHP dan ASP, sehingga jika kita membicarakan GET dan POST pada PHP, maka sebenarnya kita sedang membicarakan GET dan POST pada HTTP.

Dalam berkomunikasi, PHP menggunakan ptorokol HTTP (karena memang php merupakan bahasa pemrograman berbasis web), oleh karena itu PHP juga menyediakan sarana untuk berinteraksi dengan kedua metode request tersebut yaitu:

  1. menyimpan data GET dan POST
  2. mengirim data GET dan POST.

Untuk melakukan penanganan form atau form handling, kita harus menentukan terlebih dahulu form yang kita buat menggunakan metode metode get atau post. Untuk contoh penggunaan GET dan POST pada PHP silahkan sediakan dua buah file php, misal dengan nama file index.php dan aksi.php.

Jadi pada contoh ini kita akan membuat sebuah form penginputan nama, dan apabila form tersebut disubmit maka akan muncul nama yang diinputkan pada form. Pada file index.php kita jadikan sebagai form dan pada file aksi.php kita jadikan sebagai file php yang bertugas untuk menangkap data inputan kemudian menampilkannya.

Membuat penanganan form dengan method GET

Dalam bahasa inggris kita akrab dengan istilah GETting, dari istilah tersebut dapat diartikan bahwa metode GET pada HTTP ditujukan untuk mengambil (get) data dari server.

Pada metode ini umumnya data berbentuk query string yang dikirim via url, data tersebut berupa pasangan key=value yang dipisahkan dengan tanda & . Data tersebut digabung dengan url utama yang dipisahkan dengan tanda ?.

Baca Juga  Panduan Lengkap cara Instalasi Laravel dengan Mengunduh dari GitHub

Sebelum dikirim, terlebih dahulu data diproses sehingga memenuhi standar format URL. URL hanya boleh memuat huruf (besar dan kecil), angka dan beberapa karakter lain dalam ASCII Character Set seperti (“.-_~), karakter di luar itu akan diubah ke format tertentu yang diawali tanda % kemudian diikuti dengan 2 digit hexadesimal, contoh:

Karakter URL Encoded
? %3F
@ %40
= %3D

angka pada kolom (URL Encoded) merupakan nilai hexadecimal dari character ASCII, disamping itu URL juga tidak boleh memuat spasi, sehingga spasi akan diubah menjadi tanda + atau % . Semua proses tersebut disebut url encoding.

Berikut ini adalah contoh penanganan form dengan method GET :

index.php

<!-- penanganan form dengan method GET -->
<form method="get" action="aksi.php">
    <label>Masukkan Nama</label><br/>
    <input type="text" name="nama"><br/>
    
    <label>Masukkan Usia</label><br/>
    <input type="text" name="usia"><br/>
    
    <input type="submit" value="oke">
</form>

aksi.php

<?php
    // menangkap data nama dengan method nama
    $nama = $_GET['nama'];

    // menangkap data usia dengan method nama
    $usia = $_GET['usia'];

    // menampilkan data nama
    echo "Nama anda adalah " . $nama;

    echo "<br/>";

    // menampilkan data usia
    echo "Usia anda adalah " . $usia;
?>

Kemudian jalankan index.php, hasilnya seperti berikut :

Pada contoh di atas, untuk menggunakan method get pada form tuliskan get pada atribut method pada tag form pembuka. Pada atribut action tuliskan nama file php yang bertugas untuk mengelola atau menangkap data dari form tersebut.

<form method="get" action="aksi.php">

Pada hasil output dapat dilihat bahwa data yang dikirimkan oleh form get melalui url seperti pada gambar hasil output di atas. Penangkapan data pada file aksi.php karena form menggunakan method “get” maka pada saat penangkapan data get gunakan $_GET seperti pada file aksi.php.

Untuk cara penangkapan data yang menggunakan method get, pada contoh di atas kita memasukkan data yang di tangkap menggunakan get ke dalam variabel $nama dan $usia. Data yang di tangkap sesuai dengan nama form, misalnya pada form input nama tadi form kita beri nama degan “nama” dan form usia kita beri nama dengan “usia”.

<input type="text" name="nama"><br/>

<input type="text" name="usia"><br/>

 

// menangkap data nama dengan method get
$nama = $_GET['nama'];

// menangkap data usia dengan method get
$usia = $_GET['usia'];

atau

$_GET['nama form'];

Variabel $_GET pada PHP berbentuk associative array, variabel ini bentuknya sama seperti variabel pada umumnya, bedanya $_GET ini merupakan variabel globlal sehingga bisa diakses di mana saja.

Baca Juga  Tutorial Javascript #14 : AJAX

Karena bentuknya sama dengan yang lain, variabel ini dapat kita manipulasi sebagaimana kita memanipulasi variabel array lainnya, misal dengan menambahkan nilainya: $_GET[‘status’] = ‘aktif’ atau menghapusnya unset($_GET[‘nama’]).

 

Kelebihan dan Kekurangan

Terdapat beberapa kelebihan penggunaan metode GET, diantaranya adalah :

  1. Simpel dan data mudah diedit, misal untuk menuju halaman 5 dari suatu website, kita tinggal mengganti urlnya.
  2. Halaman dapat dibookmark dan disimpan pada history browser sehingga mudah untuk diakses kembali.
  3. Dapat kembali ke halaman sebelumnya dengan mudah (dengan mengklik tombol Back pada browser).
  4. Dapat direfresh dengan mudah.
  5. Dapat didistribusikan/dishare.

Kekurangan metode GET, diantaranya adalah :

  1. Panjang data terbatas hanya 2kb – 8kb (tergantung browsernya), jika melebihi batas tersebut akan muncul pesan error 414 Request-URI Too Long, sehingga tidak dapat digunakan untuk mengirim data dalam jumlah besar.
  2. Hanya dapat mengirim data jenis teks, jenis lainnya seperti: gambar, file zip, dan lain-lain tidak dapat dikirim.
  3. Karena data dikirim via URL, data tersebut mudah terekspose.

 

Membuat penanganan form dengan method POST

Membuat penanganan form dengan method post sama saja dengan get, hanya saja pada method form gunakan post bukan get. Cara menangkap data yang dikirim dari form yang bermethod post gunakan $_POST.

Kita sering mendengar istilah post, yang biasanya terkait dengan POSTing ke sosial media, dimana pada kegiatan tersebut kita mengirim data berupa tulisan atau gambar untuk disimpan di server sosial media tersebut.

Begitu juga dengan istilah POST pada HTTP, POST digunakan untuk mengirim data yang biasanya digunakan untuk menambah/merubah data pada server.

Pada protokol HTTP, metode POST dapat dikirim baik melalui query string maupun body seperti pada GET, data yang dikirim melalui query string akan ditampilkan pada URL dan sedangkan yang dikirim melalui body tidak terlihat oleh user.

Baca Juga  Tutorial Javascript #8 : Perulangan (Looping) pada JavaScript

Pada PHP, data POST yang dikirim melalui query string disimpan pada variabel $_GET (seperti metode GET) sedangkan yang dikirim melalui body disimpan pada variabel $_POST.

Sama seperti $_GET, variabel $_POST juga berbentuk associative array dan bersifat global yang artinya dapat diakses dimana saja, selain itu juga dapat dilakukan manipulasi sebagaimana variabel array lainnya. Penggunaan metode POST sering kita jumpai terutama pada saat pengiriman data menggunakan form html.

Contoh penggunaan method post pada php :

index.php

<!-- penanganan form dengan method POST -->
<form method="post" action="aksi.php">
    <label>Masukkan Nama</label><br/>
    <input type="text" name="nama"><br/>

    <label>Masukkan Usia</label><br/>
    <input type="text" name="usia"><br/>
    <br>
    <input type="submit" value="oke">
</form>

aksi.php

<?php
    // menangkap data nama dengan method post
    $nama = $_POST['nama'];

    // menangkap data usia dengan method post
    $usia = $_POST['usia'];

    // menampilkan data nama
    echo "Nama anda adalah " . $nama;
    echo "<br/>";

    // menampilkan data usia
    echo "Usia anda adalah " . $usia;
?>

Hasilnya :

Kelebihan dan Kekurangan

Pengiriman data menggunakan metode POST memiliki beberapa kelebihan diantaranya:

  1. Lebih aman dari pada metode GET karena data yang dikirim tidak terlihat, serta parameter yang dikirim tidak disimpan pada history browser/log browser.
  2. Dapat mengirim data dalam jumlah besar.
  3. Dapat mengirim berbagai jenis data seperti gambar, file, dan lain-lain, tidak harus teks.

Meskipun terdapat kelebihan, penggunaan metode ini juga memiliki beberpa kelemahan, walaupun sebenarnya bukan kelemahan melainkan memang menjadi karakteristik dari metode ini :

  1. Data tidak disimpan pada history browser.
  2. Data tidak dapat dibookmark.
  3. Karena dianggap sebagai data sensitif, maka ketika kita merefresh browser, akan muncul konfirmasi pengiriman ulang data, demikian juga ketika kita tekan tombol back.

Membuat penanganan form dengan $_REQUEST

$_GET digunakan untuk menangkap data dari form get. $_POST digunakan untuk menangkap data dari form post. dan $_REQUEST bisa digunakan untuk menangkap data dari method get dan method post.

 

Kelebihan dan Kekurangan GET dan POST

  • Method get sangat tidak di sarankan jika digunakan untuk membuat login, karena username dan password yang di inputkan akan terlihat pada url browser.
  • Method get lebih mudah digunakan untuk pengambilan atau penyimpanan data sementara yang dibutuhkan dalam logika pemrograman, karena lebih praktis dalam menyimpan data yang bersifat sementara.
  • Method post digunakan untuk membuat login karena membuat data yang diinputkan tidak terlihat.

Related Post

Be the first to comment

Leave a Reply

Your email address will not be published.


*


error: Ga bisa dicopy