Tentu, berikut adalah artikel untuk tutorial PHP berikutnya.
Formulir adalah salah satu elemen terpenting dalam interaksi antara pengguna dan aplikasi web. Form memungkinkan pengguna untuk mengirimkan data, seperti nama, email, pesan, atau informasi lainnya, ke server. PHP memiliki peran sentral dalam memproses data yang dikirimkan melalui form.
Dalam tutorial ini, kita akan belajar cara membuat form HTML dan bagaimana PHP menerima serta mengelola data yang dikirimkan.
1. Dasar-dasar Form HTML
Sebelum kita masuk ke PHP, penting untuk memahami dua atribut kunci dalam tag <form>:
action: Atribut ini menentukan file PHP di server mana data form akan dikirimkan untuk diproses.method: Atribut ini menentukan metode HTTP yang digunakan untuk mengirim data. Ada dua metode utama:GETdanPOST.
Contoh Form HTML Sederhana
Mari kita buat form sederhana untuk mengumpulkan nama dan email.
<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="UTF-8">
<title>Formulir Sederhana</title>
</head>
<body>
<form action="proses.php" method="post">
<label for="nama">Nama:</label><br>
<input type="text" id="nama" name="nama"><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="Kirim Data">
</form>
</body>
</html>
Perhatikan atribut name pada elemen <input>. Atribut ini sangat penting karena digunakan oleh PHP sebagai “kunci” untuk mengakses data yang dikirimkan.
2. Memproses Data Form di PHP
Setelah pengguna mengisi form dan menekan tombol “Kirim”, data akan dikirim ke file yang ditentukan dalam atribut action, yaitu proses.php. Sekarang, kita perlu membuat file proses.php untuk menangani data tersebut.
PHP menyediakan dua superglobal array untuk mengakses data form:
$_GET: Digunakan untuk mengumpulkan data form yang dikirim dengan metodeGET.$_POST: Digunakan untuk mengumpulkan data form yang dikirim dengan metodePOST.
Superglobal array ini adalah array asosiatif di mana “kunci”nya adalah atribut name dari input form, dan “nilai”nya adalah data yang dimasukkan oleh pengguna.
File: proses.php
<?php
// Cek apakah data dikirim dengan metode POST
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Ambil data dari form menggunakan $_POST
$nama = $_POST['nama'];
$email = $_POST['email'];
// Lakukan sesuatu dengan data
echo "Halo, " . htmlspecialchars($nama) . "!<br>";
echo "Email Anda adalah: " . htmlspecialchars($email);
} else {
echo "Metode pengiriman data tidak valid.";
}
?>
3. Perbedaan Antara Metode GET dan POST
Memilih metode yang tepat sangat penting untuk keamanan dan fungsionalitas aplikasi Anda.
Metode GET
- Data form dikirim melalui URL.
- Data terlihat jelas di bilah alamat browser.
- Kurang aman karena data bisa disimpan di riwayat browser dan bookmark.
- Cocok untuk mengambil data dari server, seperti hasil pencarian atau filter.
- Ada batasan jumlah data yang bisa dikirim (sekitar 2000 karakter).
Contoh URL dengan GET:
proses.php?nama=Joko+Susilo&email=joko%40mail.com
Metode POST
- Data form dikirim dalam “tubuh” permintaan HTTP.
- Data tidak terlihat di URL.
- Lebih aman dan lebih disarankan untuk data sensitif seperti password.
- Tidak ada batasan ukuran data yang signifikan.
- Cocok untuk mengirimkan data ke server untuk disimpan atau diproses, seperti pendaftaran, login, atau pengiriman pesan.
4. Validasi Data Form: Sebuah Kiat Keamanan Penting
Menerima input dari pengguna secara langsung tanpa validasi adalah praktik yang sangat berbahaya dan dapat membuka celah keamanan seperti XSS (Cross-Site Scripting). Selalu bersihkan dan validasi data yang Anda terima.
Fungsi htmlspecialchars() yang digunakan di contoh sebelumnya adalah cara sederhana untuk mengonversi karakter khusus HTML menjadi entitas HTML, mencegahnya dieksekusi sebagai kode HTML. Ini adalah langkah pencegahan dasar yang wajib dilakukan.
5. Menggabungkan Form dan Proses dalam Satu File
Terkadang, lebih praktis untuk membuat form dan prosesnya dalam satu file PHP. Ini dapat dilakukan dengan mengecek apakah form sudah disubmit.
File: form_terpadu.php
<!DOCTYPE html>
<html lang="id">
<head>
<title>Formulir Terpadu</title>
</head>
<body>
<?php
$nama = $email = "";
// Cek apakah form sudah disubmit
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = htmlspecialchars($_POST['nama']);
$email = htmlspecialchars($_POST['email']);
echo "<h3>Data Diterima:</h3>";
echo "Nama: " . $nama . "<br>";
echo "Email: " . $email;
}
?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<label for="nama">Nama:</label><br>
<input type="text" id="nama" name="nama"><br><br>
<label for="email">Email:</label><br>
<input type="email" id="email" name="email"><br><br>
<input type="submit" value="Kirim Data">
</form>
</body>
</html>
Dalam contoh di atas, htmlspecialchars($_SERVER["PHP_SELF"]) adalah teknik untuk mengirimkan data form kembali ke halaman yang sama dengan aman.
Kesimpulan
Mengelola form adalah keterampilan dasar yang harus dikuasai setiap pengembang web. Dengan memahami metode GET dan POST, serta cara PHP memproses superglobal array $_GET dan $_POST, Anda dapat mulai membuat aplikasi interaktif yang memungkinkan pengguna untuk berinteraksi dengan situs web Anda. Selalu ingat untuk memvalidasi dan membersihkan semua input dari pengguna demi keamanan.