Monday, October 6, 2014

Memilih Metode untuk Menangani Form pada PHP

Sebelumnya telah ditulis tentang cara menangani action form dengan PHP. Dimana setiap data dari form yang dikirim ke server ditangani oleh parameter yang diset pada atribut ACTION pada form. Perlu diketahui bahwa selain atribut ACTION, pada form juga ada atribut METHOD. Atribut ini dipakai untuk menentukan metode pengiriman data dari pengguna ke server.

Ada dua metode yang disediakan yaitu GET dan POST.  Masing-masing metode ini menghasilkan array assosiatif dengan key name mengacu ke nama elemen form. Dua cara penanganan Action form juga bisa diterapkan pada metode GET maupun POST.

1. Metode GET

Adalah metode pengiriman data melalui URL. Metode GET menghasilkan variabel bertipe array yang bisa dipanggil dengan variabel global $_GET["nama-elemen-form"]. Karena terlihat pada URL, maka metode GET tidak bersifat rahasia dan oleh karena itu tidak disarankan untuk mengirim data yang bersifat rahasia seperti password.

Saat form disubmit maka data dari form dikirim ke halaman action PHP melalui URL, misal: proses.php?nama=agus&alamat=jepara. Kelebihan dari metode GET adalah bisa disimpan ke dalam bookmark browser, karena memang berupa URL. Kekurangan metode GET selain tidak rahasia adalah adanya batasan jumlah informasi yang dapat dikirim yaitu 2000 karakter.

Contoh penggunaan metode GET yang kita jumpai sehari-hari adalah pada sistem pencarian di website search engine, misal www.google.com. Prinsip kerjanya adalah saat ditekan tombol CARI maka akan tampil hasil pencarian dengan URL yang diikuti dengan kata pencarian.

Contoh script untuk menangani form dengan metode GET

Script untuk membuat form masukan :
 <html>  
 <body>  
 <form action="proses.php" method="get">  
 Kata Pencarian: <input type="text" name="cari"><br>  
 <input type="submit">  
 </form>  
 </body>  
 </html>  
Script untuk menangani data dari form masukan pada file proses.php :
 <html>  
 <body>  
 Kata Pencarian Anda: <?php echo $_GET["cari"]; ?><br>  
 </body>  
 </html>   

Penjelasan script :

Saat tombol submit ditekan maka form akan mengirim data ke file proses.php dengan metode GET. Hal ini menyebabkan URL proses.php diikuti dengan variabel cari dengan value berupa kata pencarian yang dimasukkan pada input text.

Untuk lebih jelas bisa dilihat gambar berikut ini untuk masukan kata pencarian= burung

2. Metode POST

Adalah metode pengiriman data melalui protokol HTTP POST. Jadi data yang dikirim lebih aman karena tidak terlihat oleh pengguna. Metode POST adalah metode yang lebih banyak digunakan oleh developer. Metode POST juga menghasilkan variabel bertipe array seperti GET yang bisa dipanggil dengan variabel global $_POST["nama-elemen-form"].

Saat form disubmit maka data dari form dikirim ke halaman action PHP melalui sistem request pada protokol HTTP POST. Karena data tidak ditampilkan maka cara ini dianggap lebih aman dibanding metode GET. Kelebihan metode POST yang lain adalah tidak ada batasan dalam pengiriman data. Metode POST juga mendukung fungsi canggih seperti dukungan untuk multi-bagian masukan biner saat mengupload file ke server.

Satu-satunya kelemahan dari metode POST adalah tidak mungkin melakukan bookmark halaman karena informasi tidak ditaruh pada URL seperti metode GET.

Contoh script untuk menangani form dengan metode GET

Script untuk membuat form masukan :
 <html>  
 <body>  
 <form action="proses.php" method="post">  
 Kata Pencarian: <input type="text" name="cari"><br>  
 <input type="submit">  
 </form>  
 </body>  
 </html>  
Script untuk menangani data dari form masukan pada file proses.php :
 <html>  
 <body>  
 Kata Pencarian Anda: <?php echo $_POST["cari"]; ?><br>  
 </body>  
 </html>   

Penjelasan script :

Saat tombol submit ditekan maka form akan mengirim data ke file proses.php dengan metode POST. Data dari form di kirim melalui jalur protokol HTTP POST. Sehingga URL tetap bersih tanpa diikuti variabel dibelakangnya.

Untuk lebih jelas bisa dilihat gambar berikut ini untuk masukan kata pencarian= burung

Referensi :

0 komentar

Post a Comment