Cara Memproses Form HTML Dengan Script PHP

Pada kesempatan ini saya akan menjelaskan menganai cara memproses form html dengan script php yang benar, kebanyakan temen temen programmer PHP yang masih newbie (pemula) belum mengetahuinya. Selain itu 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/halaman yang ditentukan 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 (nama dan nilai variable tidak terlihat dalam URL), namun jika diisi dengan GET, maka data akan dikirim sebagai variabel variabel URL (nama dan nilai variable terlihat dalam 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 ada sebuah form dengan 4 elemen seperti di bawah:

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

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.

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> (agar lebih jelas lihat gambar).

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 versi 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.

Kesimpulan :

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. Untuk tutorial lebih lanjut silahkan baca cara membuat buku tamu yang telah diposting sebelum nya sebagai latihan menyimpan data dari form ke database dan menampilkan nya kembali…

Selamat berkreasi .. ^_^

A. Efryanto

Efry bekerja sebagai staff pengajar di LKP PalComTech Prabumulih. Bidang materi yang diajarkan adalah pemrograman seperti PHP.

15 comments

  1. @all : Wah..sdah bnyak jempol nya..trimz y.. :toast

  2. nice info gan…………

  3. Siiippp … :2thumbup

  4. kereeennn…
    i like it :)

  5. ada tutorial form auto submit dengan menggunakan ajax gak ya?

    kalau ada minta donk,,,

  6. MantaPPPPPPPP Pakkkkkk ….. :thumbup: :2thumbup :thumbup

  7. mantaps banget ni infonya….

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

[+] kaskus emoticons nartzco