Form dan Input Data dengan PHP

By | 11 October 2025

Salah satu keunggulan PHP adalah kemampuannya untuk memproses data dari pengguna melalui form. Contohnya saat pengguna login, register, atau mengirim pesan kontak, PHP akan membaca data dari form HTML dan mengolahnya.

Pada bagian ini, kamu akan belajar:

  1. Membuat form HTML sederhana.

  2. Mengambil data dari form dengan PHP.

  3. Memahami perbedaan metode GET dan POST.

  4. Melakukan validasi sederhana pada input.

1. Membuat Form HTML Sederhana

Buat file baru bernama form.php di folder proyek kamu (htdocs/belajarphp).

Isi dengan kode berikut:

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <title>Form Input Data</title>
</head>
<body>
    <h2>Formulir Pendaftaran</h2>
    <form action="proses.php" method="post">
        Nama: <input type="text" name="nama" required><br><br>
        Email: <input type="email" name="email" required><br><br>
        Umur: <input type="number" name="umur"><br><br>
        <input type="submit" value="Kirim">
    </form>
</body>
</html>

Penjelasan:

  • action="proses.php" → data akan dikirim ke file proses.php.

  • method="post" → menggunakan metode POST (lebih aman untuk data pribadi).

  • name → digunakan sebagai kunci untuk mengakses data di PHP.

2. Menangani Data di PHP

Sekarang buat file baru bernama proses.php di folder yang sama, lalu isi dengan:

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

    echo "<h3>Data yang Anda Kirim:</h3>";
    echo "Nama: " . htmlspecialchars($nama) . "<br>";
    echo "Email: " . htmlspecialchars($email) . "<br>";
    echo "Umur: " . htmlspecialchars($umur) . "<br>";
} else {
    echo "Form belum dikirim.";
}
?>

Penjelasan:

  • $_SERVER["REQUEST_METHOD"] → memastikan data dikirim melalui POST.

  • $_POST["nama"] → mengambil data dari form berdasarkan atribut name.

  • htmlspecialchars() → mencegah XSS (Cross-Site Scripting) dengan mengamankan input dari karakter berbahaya.

3. Perbedaan GET dan POST

PHP memiliki dua cara umum untuk mengirim data dari form:

Metode Ciri Khas Contoh URL Keamanan
GET Data dikirim lewat URL ?nama=Arvian&umur=25 Kurang aman
POST Data dikirim secara tersembunyi Tidak terlihat di URL Lebih aman

Contoh form dengan GET:

<form action="proses.php" method="get">
    Nama: <input type="text" name="nama">
    <input type="submit" value="Kirim">
</form>

Dan di file PHP:

<?php
$nama = $_GET["nama"];
?>

Gunakan GET untuk pencarian atau navigasi (misalnya ?q=kata+kunci) dan POST untuk data sensitif seperti login, password, atau form pendaftaran.

4. Validasi Input Sederhana

Sebelum memproses data, penting untuk memeriksa apakah semua field sudah diisi dengan benar.

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

    if (empty($nama) || empty($email)) {
        echo "Nama dan email wajib diisi!";
    } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Format email tidak valid!";
    } else {
        echo "Halo, $nama! Data kamu berhasil dikirim.";
    }
}
?>

Penjelasan:

  • trim() → menghapus spasi di awal dan akhir input.

  • empty() → mengecek apakah input kosong.

  • filter_var($email, FILTER_VALIDATE_EMAIL) → memastikan format email benar.

5. Menampilkan Data ke Halaman Lain (Opsional)

Kadang kamu ingin menampilkan hasil input di halaman berbeda. Misalnya, pengguna mengisi form di form.php, lalu diarahkan ke hasil.php.

<!-- form.php -->
<form action="hasil.php" method="post">
    Nama: <input type="text" name="nama">
    <input type="submit" value="Kirim">
</form>
<!-- hasil.php -->
<?php
$nama = $_POST["nama"];
echo "Selamat datang, " . htmlspecialchars($nama) . "!";
?>

Tips Keamanan

  • Gunakan htmlspecialchars() untuk setiap output yang berasal dari input pengguna.

  • Hindari menampilkan data mentah dari $_GET atau $_POST.

  • Validasi semua input, bahkan jika form dikirim dari sisi client (karena bisa dimanipulasi).

6. Latihan Lengkap

Buat form pendaftaran dengan field berikut:

  • Nama

  • Email

  • Umur

  • Jenis Kelamin (radio button)

  • Hobi (checkbox)

Tugas:

  1. Tampilkan data hasil input di halaman hasil.php.

  2. Gunakan foreach() untuk menampilkan daftar hobi.

  3. Pastikan ada validasi agar semua field wajib diisi.

Contoh tampilan output:

Nama: Arvian
Email: arvian@mail.com
Umur: 25
Jenis Kelamin: Laki-laki
Hobi: Membaca, Coding

Kesimpulan

Di bagian ini kamu telah belajar:

  • Cara membuat form HTML dan menghubungkannya ke PHP.

  • Perbedaan metode GET dan POST.

  • Dasar validasi input dan keamanan data.

Langkah selanjutnya, kamu siap menghubungkan form ke database MySQL untuk menyimpan data pengguna.

Category: PHP