BAB 9: Form dan Input Data PHP – Menangkap dan Memproses Data Pengguna

BAB 9: Form dan Input Data PHP – Menangkap dan Memproses Data Pengguna

Form adalah salah satu cara paling umum untuk mengambil input dari pengguna. PHP menyediakan berbagai cara untuk menangkap, memvalidasi, dan mengelola data dari form HTML.


Form HTML dan Metode GET & POST

Form HTML digunakan untuk mengirim data ke server. Ada dua metode utama: GET dan POST.

1. Metode GET

  • Data dikirim melalui URL.
  • Cocok untuk pencarian atau data yang tidak sensitif.
<form action="proses.php" method="GET">
    Nama: <input type="text" name="nama">
    <input type="submit" value="Kirim">
</form>

2. Metode POST

  • Data dikirim melalui body request.
  • Lebih aman untuk data sensitif seperti password.
<form action="proses.php" method="POST">
    Nama: <input type="text" name="nama">
    <input type="submit" value="Kirim">
</form>

Menangkap Data Form: $_GET dan $_POST

PHP menyediakan superglobals untuk mengambil data form.

Contoh GET

<?php
$nama = $_GET['nama'];
echo "Halo, $nama!";
?>

Contoh POST

<?php
$nama = $_POST['nama'];
echo "Halo, $nama!";
?>

Gunakan POST untuk data yang lebih aman dan panjang.


Validasi Input Dasar

Sebelum memproses input, lakukan validasi untuk mencegah kesalahan:

<?php
$nama = $_POST['nama'] ?? '';
if(empty($nama)) {
    echo "Nama tidak boleh kosong!";
} else {
    echo "Halo, $nama!";
}
?>

Contoh validasi lainnya:

  • Cek apakah email valid: filter_var($email, FILTER_VALIDATE_EMAIL)
  • Cek angka: is_numeric($angka)

Sanitasi Input

Sanitasi mencegah serangan XSS atau SQL Injection dengan membersihkan data:

<?php
$nama = htmlspecialchars($_POST['nama']); // Menghindari tag HTML berbahaya
$umur = intval($_POST['umur']); // Mengubah input menjadi integer
?>

Superglobals Lainnya

PHP menyediakan beberapa superglobals tambahan:

SuperglobalFungsi Utama
$_REQUESTMengambil data dari GET, POST, dan COOKIE sekaligus
$_SERVERInformasi server dan request, misal $_SERVER['PHP_SELF']
$_FILESMenangani file upload dari form
$_SESSIONMenyimpan data sementara di server untuk tiap pengguna
$_COOKIEMenyimpan data di browser pengguna

Contoh $_SERVER

<?php
echo "Nama file saat ini: " . $_SERVER['PHP_SELF'];
?>

Contoh $_FILES

<form action="upload.php" method="POST" enctype="multipart/form-data">
    Pilih file: <input type="file" name="file">
    <input type="submit" value="Upload">
</form>
<?php
if(isset($_FILES['file'])) {
    $namaFile = $_FILES['file']['name'];
    move_uploaded_file($_FILES['file']['tmp_name'], "uploads/".$namaFile);
    echo "File berhasil diupload: $namaFile";
}
?>

Dengan memahami form, metode GET/POST, validasi, dan superglobals, Anda dapat membuat aplikasi interaktif yang aman dan fleksibel.