Cara Memproses HTML Form yang Benar

Kebanyakan programmer PHP pemula tidak tahu bagaimana cara memproses HTML form yang benar. Bahkan ini juga terjadi bagi yang sudah lama berkecimpung di dunia PHP. Kebanyakan masih menggunakan cara lama (bisa dibilang salah), cara yang populer di versi PHP4 ke bawah. Dimana di versi PHP4 ke bawah register_global secara default disetting ON. Tentu saja, ketika register_global diset menjadi OFF, script php tersebut tidak akan bekerja.

Berikut adalah cara memproses html form menggunakan php yang benar, yang bekerja di semua versi php (dari 4.1.0 sampai version terkini 5.3.3).

HTML Form: Metode Pengiriman Data

Form HTML dibentuk menggunakan tag <form/>, tag <form/> memiliki attribute method yang digunakan untuk menentukan bagaimana cara form mengirim data ke server (data dikirim ke page/halama yang diset di dalam attribute action). Attribute method bisa diisi dengan 2 nilai, yaitu post dan get. Jika diisi dengan post, maka data akan dikirim sebagai sebuah HTTP post transaction. Jika diisi dengan get, maka data akan dikirim sebagai variabel variabel URL. Contoh:

<form method="get" action="http://google.com">
<input type="text" name="q"/>
</form>

<form method="post" action="http://sandbox.paypal.com/cgi-bin/webscr">
<input type="hidden" name="amount" value="10"/>
<input type="submit" value="Pay Now"/>
</form>

Form pertama akan mengirim data ke http://google.com menggunakan method get, dan form kedua akan mengirim data ke http://sandbox.paypal.com/cgi-bin/webscr dengan method post.

Cara Memproses Form di PHP

Dalam memproses sebuah form, yang perlu diketahui adalah di PHP ada yang disebut dengan superglobals variables. Superglobals variables adalah variabel standar yang tersedia di seluruh ruang lingkup kode php bersangkutan. Superglobals variables yang berperan saat memproses form adalah $_POST, $_GET, dan $_FILES. Ketiga variabel ini akan diisi dengan data yang diterima/dikirim dari/oleh form html.

Di atas telah disebutkan bahwa sebuah form bisa menggunakan 2 metode pengiriman data. Jika menggunakan post, maka data yang diterima dari form ini akan disimpan ke dalam variable $_POST. Jika dikirim menggunakan metode get, maka data yang diterima akan disimpan ke dalam varibel $_GET. Sedangkan variabel $_FILES berfungsi untuk menyimpan informasi file file yang diupload (untuk mengupload file digunakan element form dengan type="file"). Ketiga superglobals variables itu, akan berisi associative array.

Untuk lebih memperjelas akan diberikan contoh. Misalkan anda memiliki sebuah form dengan 4 element seperti di bawah:

form-34.jpg

pada saat form diisi data dan tombol submit ditekan, data akan dikirim ke server dan terjadi proses seperti gambar:

form-34-1.jpg form-34-2.jpg

Ilustrasi sederhana di atas menjelaskan bahwa pada saat tombol submit ditekan, data akan dikirim ke server dan diproses oleh php. PHP akan menyimpan data yang diterima (yang telah diproses) ke dalam variabel $_POST (karena data dikirim dengan method post). Selanjutnya, adalah "tugas programmer untuk memproses data yang diterima", yang telah ditempatkan di variabel $_POST oleh PHP. Seperti terlihat di gambar, variabel $_POST akan berisi associative array berikut:

$_POST = array (
 'nama' => 'John',
 'kelamin' => 'L',
 'status' => 'M',
 'alamat' => 'Jalan kutilang',
);

Pertanyaan yang muncul adalah, mengapa variabel $_POST terbentuk seperti itu? Gambar di bawah akan menjelaskannya.

form-34-3.jpg

form-34-4.jpg

Di variabel $POST, bagian sebelah kiri tanda => disebut dengan 'key', bagian sebelah kanan disebut dengan 'value'. 'key' akan bersesuaian dengan attribute 'name' dari masing masing element <form/>, dan 'value'_ and berisi data yang dinput oleh user pada masing masing element <form/> (lihat gambar agar lebih jelas).

Setelah mengetahui bagaimana PHP menerima data yang dikirim dari sebuah form, langkah selanjutnya adalah memproses data yang diterima tadi, yang ditempatkan di dalam variabel superglobal (dalam hal ini adalah $_POST). Misalkan data tadi hanya ditampilkan setelah user menekan tombol submit.

<?php
echo "Nama: ".$_POST['nama'];
echo "<br/>Jenis Kelamin: ".$_POST['kelamin'];
echo "<br/>Status: ".$_POST['status'];
echo '<br/>Alamat: '.$_POST['alamat'];
?>

kode php di atas akan bekerja di semua versi php (dari 4.1.0 sampai version terkini 5.3.3), baik register_global diseting on ataupun off. Kode php ini adalah bagian pemrosesan data yang dilakukan oleh programmer. Untuk form yang mengirim data menggunakan method get, prinsipnya sama hanya ganti $_POST dengan $_GET.

Rangkuman

Secara garis besar memproses form dengan php adalah seperti berikut. Dimulai dari browser menampilkan form yang perlu diisi oleh user. Kemudian user menginputkan data ke dalam form. Data dikirim oleh browser ke server. PHP menerima data dan menempatkan data yang diterima ke dalam variabel $_POST atau $_GET atau $_FILES. Selanjutnya "programmer memproses data yang telah disimpan ke dalam variabel $_POST atau $_GET atau $_FILES tadi". Terakhir, server mengirim hasil pemrosesan data ke browser dan menampilkannya kepada user.

Jika ada pertanyaan tentang tutorial "Cara Memproses HTML Form yang Benar" ini, silahkan tanyakan di Sangkep atau dengan form di bawah.