Penanganan Formulir PHP
Superglobal PHP $_GET dan $_POST digunakan untuk mengumpulkan data formulir.
PHP - Formulir HTML Sederhana
Contoh di bawah ini menampilkan formulir HTML sederhana dengan dua bidang input dan tombol kirim:
Contoh
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Ketika pengguna mengisi formulir di atas dan mengklik tombol kirim, data formulir dikirim untuk diproses ke file PHP bernama "welcome.php". Data formulir dikirim dengan metode HTTP POST.
Untuk menampilkan data yang dikirimkan, Anda cukup menggemakan semua variabel. "welcome.php" terlihat seperti ini:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
Outputnya bisa seperti ini:
Welcome John
Your email address is [email protected]
Hasil yang sama juga dapat dicapai dengan menggunakan metode HTTP GET:
Contoh
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
dan "welcome_get.php" terlihat seperti ini:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
Kode di atas cukup sederhana. Namun, hal yang paling penting hilang. Anda perlu memvalidasi data formulir untuk melindungi skrip Anda dari kode berbahaya.
Pikirkan KEAMANAN saat memproses formulir PHP!
Halaman ini tidak berisi validasi formulir apa pun, itu hanya menunjukkan bagaimana Anda bisa mengirim dan mengambil data formulir.
Namun, halaman selanjutnya akan menunjukkan cara memproses formulir PHP dengan mempertimbangkan keamanan! Validasi yang tepat dari data formulir penting untuk melindungi formulir Anda dari peretas dan spammer!
DAPATKAN vs. POSTING
Baik GET dan POST membuat array (misalnya array( key1 => value1, key2 => value2, key3 => value3, ...)). Array ini menampung pasangan kunci/nilai, di mana kunci adalah nama kontrol formulir dan nilai adalah data input dari pengguna.
Baik GET dan POST diperlakukan sebagai $_GET dan $_POST. Ini adalah superglobal, yang berarti mereka selalu dapat diakses, terlepas dari cakupannya - dan Anda dapat mengaksesnya dari fungsi, kelas, atau file apa pun tanpa harus melakukan sesuatu yang istimewa.
$_GET adalah larik variabel yang diteruskan ke skrip saat ini melalui parameter URL.
$_POST adalah larik variabel yang diteruskan ke skrip saat ini melalui metode HTTP POST.
Kapan menggunakan GET?
Informasi yang dikirim dari formulir dengan metode GET dapat dilihat oleh semua orang (semua nama dan nilai variabel ditampilkan di URL). GET juga memiliki batasan jumlah informasi yang akan dikirim. Batasannya sekitar 2000 karakter. Namun, karena variabel ditampilkan di URL, halaman dapat di-bookmark. Ini dapat berguna dalam beberapa kasus.
GET dapat digunakan untuk mengirim data yang tidak sensitif.
Catatan: GET TIDAK PERNAH digunakan untuk mengirim kata sandi atau informasi sensitif lainnya!
Kapan menggunakan POST?
Informasi yang dikirim dari formulir dengan metode POST tidak terlihat oleh orang lain (semua nama/nilai disematkan di dalam isi permintaan HTTP) dan tidak memiliki batasan jumlah informasi yang akan dikirim.
Selain itu, POST mendukung fungsionalitas lanjutan seperti dukungan untuk input biner multi-bagian saat mengunggah file ke server.
Namun, karena variabel tidak ditampilkan di URL, halaman tidak dapat di-bookmark.
Pengembang lebih memilih POST untuk mengirim data formulir.
Selanjutnya, mari kita lihat bagaimana kita dapat memproses formulir PHP dengan cara yang aman!