Advertisements
php

Belajar PHP #14 : Form Handling

Anak Males – Saat Anda mengisi formulir online—entah itu mendaftar akun baru, memesan tiket bioskop, atau bahkan mengisi survei di internet—pernahkah Anda bertanya-tanya, “Ke mana semua data ini pergi?” Jawabannya sederhana: data tersebut diproses oleh server menggunakan teknologi seperti PHP. Nah, form handling adalah salah satu hal paling penting yang dilakukan oleh PHP untuk menangani data yang dikirim dari sebuah form HTML.

Dalam artikel ini, kita akan menjelajahi bagaimana cara kerja form handling di PHP dengan gaya yang ringan dan sedikit humor—karena siapa bilang belajar PHP harus membosankan?

Baca Juga : Belajar PHP #01 : Pengenalan Dasar PHP

Apa Itu Form Handling di PHP?

Form handling di PHP adalah proses menangani data yang dikirim dari formulir HTML (biasanya menggunakan metode GET atau POST). Data tersebut kemudian dapat diproses sesuai kebutuhan, misalnya disimpan ke dalam database, dikirim melalui email, atau hanya ditampilkan kembali ke pengguna.

Analoginya?

Bayangkan Anda adalah pelayan di restoran. Pelanggan (form HTML) memberikan pesanan (input data), dan tugas Anda sebagai pelayan (PHP) adalah membawa pesanan tersebut ke dapur (server), di mana koki (database) akan mengolahnya.

Baca Juga : Belajar PHP #02 : Tools PHP

Metode GET vs POST

Sebelum masuk ke kode PHP, penting untuk memahami perbedaan antara metode GET dan POST dalam form handling.

GET: Tunjukkan Semua, Jangan Sembunyi

Metode GET mengirim data melalui URL. Ini artinya data yang dikirim dari form akan terlihat di address bar browser. Hal ini baik untuk permintaan yang tidak sensitif, seperti pencarian Google.

  • Kelebihan: Data dapat di-bookmark dan dibagikan.
  • Kekurangan: Terbatas pada jumlah karakter dan tidak aman untuk informasi sensitif.

POST: Aman di Balik Layar

Metode POST mengirim data “di balik layar,” artinya data tidak muncul di URL. Ini ideal untuk data sensitif seperti kata sandi atau informasi pribadi.

  • Kelebihan: Tidak ada batasan panjang data dan lebih aman untuk data sensitif.
  • Kekurangan: Tidak bisa dibookmark atau dibagikan melalui URL.

Baca Juga : Belajar PHP #03 : Menggunakan Web Server

Membuat Form HTML Sederhana

Mari kita mulai dengan form HTML sederhana yang bisa kita proses menggunakan PHP.

<form method="post" action="proses_form.php">
Nama: <input type="text" name="nama"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Kirim">
</form>

Penjelasan Kode:

  • method=”post”: Form akan mengirim data menggunakan metode POST.
  • action=”proses_form.php”: Data akan dikirim ke file PHP bernama proses_form.php untuk diproses.

Menangani Data Form di PHP

Sekarang mari kita lihat bagaimana cara PHP menangani data yang dikirim dari form di atas.

File: proses_form.php

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Mengambil data dari form
$nama = $_POST['nama'];
$email = $_POST['email'];

// Memeriksa apakah input nama dan email telah diisi
if (empty($nama) || empty($email)) {
echo "Nama dan email tidak boleh kosong!";
} else {
// Menampilkan hasil input
echo "Nama: " . htmlspecialchars($nama) . "<br>";
echo "Email: " . htmlspecialchars($email);
}
}
?>

Penjelasan Kode:

  • $_SERVER["REQUEST_METHOD"]: Memeriksa metode yang digunakan oleh form. Dalam hal ini, kita memeriksa apakah metode yang digunakan adalah POST.
  • $_POST['nama']: Mengambil data yang dikirim dari input field nama.
  • htmlspecialchars(): Melindungi dari cross-site scripting (XSS) dengan mengonversi karakter khusus menjadi entitas HTML.
  • empty(): Memeriksa apakah input tidak kosong.

Baca Juga : Belajar PHP #13 : Include & Require

Mengamankan Data dengan Validasi

Ketika Anda menerima data dari form, selalu pastikan untuk memvalidasinya. Tanpa validasi yang baik, Anda membuka pintu untuk berbagai masalah, mulai dari data yang salah hingga serangan berbahaya seperti SQL Injection. Berikut adalah beberapa cara dasar untuk memvalidasi data.

1. Memeriksa Data Kosong

Kita bisa menggunakan fungsi empty() untuk memeriksa apakah field input telah diisi.

if (empty($nama)) {
echo "Nama tidak boleh kosong!";
}

2. Memvalidasi Format Email

Jika Anda mengharuskan pengguna memasukkan email, pastikan format email tersebut benar menggunakan filter_var().

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Format email tidak valid!";
}

3. Sanitasi Data

Selain validasi, data juga perlu disanitasi untuk menghilangkan karakter yang tidak diinginkan. Misalnya, kita dapat menggunakan filter_var() untuk menyaring input.

$email_sanitized = filter_var($email, FILTER_SANITIZE_EMAIL);

Baca Juga : Belajar PHP #12 : Fungsi & Prosedur

Contoh Lengkap Form Handling dengan Validasi

Mari kita buat contoh yang lebih lengkap dengan validasi untuk menangani data form.

Form HTML

<form method="post" action="proses_form_validasi.php">
Nama: <input type="text" name="nama"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Kirim">
</form>

File: proses_form_validasi.php

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = $_POST['nama'];
$email = $_POST['email'];
$errors = [];

// Validasi nama
if (empty($nama)) {
$errors[] = "Nama tidak boleh kosong!";
}

// Validasi email
if (empty($email)) {
$errors[] = "Email tidak boleh kosong!";
} elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = "Format email tidak valid!";
}

// Tampilkan pesan error jika ada
if (!empty($errors)) {
foreach ($errors as $error) {
echo $error . "<br>";
}
} else {
// Jika tidak ada error, tampilkan data
echo "Nama: " . htmlspecialchars($nama) . "<br>";
echo "Email: " . htmlspecialchars($email);
}
}
?>

Penjelasan Kode:

  • Kami menambahkan array $errors untuk menyimpan pesan kesalahan.
  • Setiap kali ada kesalahan (seperti input kosong atau format email yang salah), pesan kesalahan ditambahkan ke array $errors dan ditampilkan ke pengguna.
  • Jika tidak ada kesalahan, data akan ditampilkan.

Baca Juga : Belajar PHP #11 : Array

Menggunakan Form Handling untuk Mengirim Data ke Database

Salah satu tujuan paling umum dalam form handling adalah menyimpan data ke database. Mari kita lihat contoh sederhana untuk mengirim data dari form ke database MySQL.

1. Membuat Form HTML

<form method="post" action="simpan_ke_database.php">
Nama: <input type="text" name="nama"><br>
Email: <input type="email" name="email"><br>
<input type="submit" value="Simpan">
</form>

2. File: simpan_ke_database.php

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "form_data";

// Membuat koneksi ke database
$conn = new mysqli($servername, $username, $password, $dbname);

// Memeriksa koneksi
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
$nama = $conn->real_escape_string($_POST['nama']);
$email = $conn->real_escape_string($_POST['email']);

$sql = "INSERT INTO users (nama, email) VALUES ('$nama', '$email')";

if ($conn->query($sql) === TRUE) {
echo "Data berhasil disimpan!";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}

// Menutup koneksi
$conn->close();
?>

Penjelasan Kode:

  • Kami membuat koneksi ke database menggunakan mysqli.
  • Data dari form disimpan ke tabel users menggunakan query INSERT.
  • real_escape_string() digunakan untuk menghindari serangan SQL Injection.

Kesimpulan

Form handling di PHP adalah konsep dasar namun sangat penting yang memungkinkan Anda menangani data dari form HTML dengan aman dan efisien. Dengan menggunakan metode GET atau POST, Anda dapat mengambil data yang dikirim oleh pengguna, memvalidasinya, dan kemudian memprosesnya lebih lanjut—seperti menyimpannya ke database atau menampilkannya kembali.

Dan seperti seorang pelayan yang bertugas membawa pesanan ke dapur, PHP memastikan bahwa data form Anda sampai di tempat yang tepat dengan selamat dan utuh. Selamat mencoba, dan jangan lupa untuk selalu memvalidasi data Anda seperti seorang koki yang selalu mencicipi masakannya sebelum disajikan! 🍽️

You may also like...

Popular Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *