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:
https://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:
https://www.duniailkom.com/?s=integer+dalam+php&submit=Search
Untuk mengujinya, silahkan copy–paste 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
Dan 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.
Mau tanya bagaimana menambahkan alert ketika berhasil menginput data ke database ??
Membuat alert/pesan sebagai feedback data berhasil atau tidak memang agak sedikit rumit, namun idenya bisa dilihat pada Tutorial Form PHP: Cara Mengisi Form PHP Ketika Terjadi Kesalahan.
Semoga bisa membantu :)
tutorialnya sangat bagus dan sangat membantu sekali kak,
thanks sudah share ilmu nya :D
Sama2 :) terimakasih juga untuk kunjungannya…
mau tanya bang, kalo cara menghubungkan 1 form html ke 2 form php gimana ya? aku udah coba pakai method post tapi cuman bisa terhubung ke 1 form php
Tujuannya untuk dipindah ke halaman ke 2 untuk apa y? mungkin lebih cocok jika datanya disimpan di cookie atau langsung ke database apabila memang ingin diakses dari halaman ke 2 (dan halaman2 lain).
Jika memang harus lewat form, bisa dengan cara memindahkan hasil dari $_POST form pertama, kemudian dijadikan value untuk sebuah tag <input type="hidden">. Kira2 seperti ini: <input type="hidden" value= <?php echo $_POST['data']; ?>>
mau terjemahin kata bang, jadi kalo misalkan input kata di kolom text kemudian disubmit form database nya kesambung gitu, tapi aku udah coba cuman bisa 1 form database yang terkoneksi
Kalo cara menghubungkan form select option dengan perulangan for gimana ya?
Mohon bantuannya kak.
Menurut saya sebaiknya pelajari HTML dan PHP dari awal sis, soalnya kalaupun kode programnya saya tulis, untuk memahaminya tetap harus paham HTML dan PHP secara keseluruhan (g bisa sepotong2 saja).
Contohnya, kode program berikut saya gunakan untuk menggenerate <select> tanggal 1-31:
<select name="tgl" id="tgl">
<?php
for ($i = 1; $i <= 31; $i++) {
echo "<option value = $i >";
echo str_pad($i,2,"0",STR_PAD_LEFT);
echo "</option>";
}
?>
</select>
mau tanyak bang andre, kalo mau bikin semacam pesan konfirmasi gitu atau alert, setelah dia meng-klik tombol "Submit" misalkan pada sebuah form, itu gimana ya? jadi dia kaya nge konfirmasi lagi, apa data diatas sdh benar? kurang lebih begitu, karna kan ada kemungkinan kalau dia itu salah mencet atau kepencet, hehehe. Mohon pencerahan.
Untuk membuat jendela konfirmasi seperti itu, harus menggunakan JavaScript gan. Di JavaScript ini nantinya kita juga harus buat proses validasi, untuk mengecek apakah datanya kosong, tidak sesuai peruntukan, dsb.
Dalam website yang sebenarnya, validasi di buat di 2 tempat: JavaScript untuk di web browser, dan PHP untuk di web server.
yaa saya sdh menduga bakal pake js sih, saya hanya bingung gimana cara melanjutkan meng execute stelah saya bkin popup pake confirm terus dia pilih Ok. Karna saya lagi bkin form utk seperti contact us gitu deh tapi dia berbeda sdikit hehe. Jadi pas dia sdh isi semuanya itu, langsung ada popup konfirmasi lah kurang lebih, nah stelah dia pilih Ok nanti itu yg saya bingung gimana cara ngelanjutin supaya kode phpmailer nya jalan(saya bikin form itu pake phpmailer)
Hlo min mau nanya cara membuat website menggunakan bootstrap bagaimana ya min mohon penjelasannya
Bootstrap lumayan kompleks dan termasuk materi lanjutan. Minimal agan mesti paham HTML dan CSS dulu baru bisa lanjut ke bootstrap.
Saran saya coba cari buku khusus yang membahas bootstrap, karena g akan bisa selesai dalam 10 – 20 tutorial (lebih pas untuk materi 1 buku).
Terima kasih bnyak gan.. selama ini sy masih bingunh untuk mengambil variabel dari halaman php lain.. tp akhirnya ketemu juga…
Siip, sama2.. semoga bisa bermanfaat
<B>TAMBAH USER</B>
<form method="POST" action="<?php $_SERVER['PHP_SELF']?>" target="_self">
<table>
<tr>
<td>ID User</td>
<td><input type="text" name="iduser"></td>
</tr>
<tr>
<td>Nama User</td>
<td><input type="text" name="namauser"></td>
</tr>
<tr>
<td>password_user</td>
<td><input type="text" name="passworduser"></td>
</tr>
<tr>
<td>Level user</td>
<td><input type="text" name="leveluser"></td>
</tr>
</table>
<input type="submit" name="tambahuser" value="TAMBAH">
</form>
<!–Start tambah data–>
<?php if(isset($_POST['tambahuser'])){
$v_iduser=$_POST["iduser"];
$v_namauser=$_POST["namauser"];
$v_password_user=$_POST["passworduser"];
$v_leveluser=$_POST["leveluser"];
//$v_kategoriproduk=$_POST["kategoriproduk"];
$tambahuser=$koneksidb->query("INSERT INTO user (id_user,nama_user,password_user,level_user) VALUE ('$v_iduser','$v_namauser','$v_password_user','$v_leveluser')");
?>
<hr/>
USER <?php echo"$v_iduser";?>Sudah Ditambahkan
<hr/>
<?php
} ?>
<!–End tambah data–>
<!–Start hapus data–>
<?php if(isset($_POST['hapusdata'])){
$v_iduser=$_POST["id_user"];
$hapus=$koneksidb->query ("DELETE FROM user WHERE id_user='$v_iduser'");
?>
<hr/>
Data dengan ID <?php echo"$v_iduser";?> Sudah Dihapus
<hr/>
<?php
} ?>
Untuk hapus kok belum bisa dimana kesalahannya