๐Ÿ’ก Ikuti kami untuk mendapatkan update menarik lainnya Follow Now!

Tutorial PHP: Form handling dan Validasi Form

Dalam artikel ini, kita akan membahas cara mengumpulkan, memproses, dan memvalidasi data formulir menggunakan PHP dengan cara yang mudah dipahami.
Daftar Isi

Halo semua pada artikel sebelumnya kita sudah belajar tentang sintaksis dasar PHP dan Salah satu fitur penting dalam pengembangan web adalah menangani data yang dikirim melalui formulir. Dalam artikel ini, kita akan membahas cara mengumpulkan, memproses, dan memvalidasi data formulir menggunakan PHP dengan cara yang mudah dipahami. Yuk, kita mulai!!

PHP - Superglobal $_GET dan $_POST

Di PHP, kita bisa menggunakan superglobal $_GET dan $_POST untuk mengumpulkan data dari formulir. Superglobal ini adalah array yang selalu bisa diakses dari mana saja dalam skrip PHP kita.

Membuat Formulir HTML Sederhana

Contoh di bawah ini menampilkan formulir HTML sederhana dengan dua input field dan satu tombol submit:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulir Sederhana</title>
</head>
<body>

<form action="welcome.php" method="POST">
    Nama: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit" value="Kirim">
</form>

</body>
</html>

Ketika user mengisi formulir di atas dan mengklik tombol submit, data formulir akan dikirim untuk diproses ke file PHP bernama "welcome.php" menggunakan metode POST.

Menampilkan Data yang Dikirim

Untuk menampilkan data yang dikirim, kita bisa cukup menggunakan echo untuk semua variabel. Berikut contoh "welcome.php":

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hasil Formulir</title>
</head>
<body>

Selamat datang, <?php echo $_POST["name"]; ?><br>
Alamat email Anda adalah: <?php echo $_POST["email"]; ?>

</body>
</html>

Outputnya bisa seperti ini:

Selamat datang, John
Alamat email Anda adalah: john.doe@example.com

Metode GET

Hasil yang sama juga bisa dicapai dengan menggunakan metode GET. Berikut contohnya dengan metode GET:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulir Sederhana</title>
</head>
<body>

<form action="welcome_get.php" method="GET">
    Nama: <input type="text" name="name"><br>
    E-mail: <input type="text" name="email"><br>
    <input type="submit" value="Kirim">
</form>

</body>
</html>

Dan "welcome_get.php" tampilannya seperti ini:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Hasil Formulir</title>
</head>
<body>

Selamat datang, <?php echo $_GET["name"]; ?><br>
Alamat email Anda adalah: <?php echo $_GET["email"]; ?>

</body>
</html>

GET vs. POST

Baik GET maupun POST membuat array (contoh: array( key1 => value1, key2 => value2, key3 => value3, ...)) yang memegang pasangan key/value, dimana key adalah nama-nama dari kontrol form dan value adalah data input dari user.

  • $_GET adalah array dari variabel yang dikirim ke skrip saat ini melalui URL.
  • $_POST adalah array dari variabel yang dikirim ke skrip saat ini melalui metode POST.

Kapan Menggunakan GET?

  • Data yang dikirim dengan metode GET terlihat oleh semua orang (nama dan nilai variabel ditampilkan di URL).
  • GET punya batasan jumlah informasi yang bisa dikirim, sekitar 2000 karakter.
  • Karena variabel ditampilkan di URL, halaman bisa dibookmark. Ini bisa berguna dalam beberapa kasus.
  • GET cocok untuk mengirim data yang tidak sensitif.

Catatan: GET sebaiknya TIDAK PERNAH digunakan untuk mengirimkan password atau informasi sensitif lainnya!

Kapan Menggunakan POST?

  • Data yang dikirim dengan metode POST tidak terlihat oleh orang lain (nama/nilai tertanam dalam body dari request HTTP) dan tidak ada batasan jumlah informasi yang bisa dikirim.
  • POST mendukung fungsionalitas lanjutan seperti dukungan untuk input binary multi-part saat mengunggah file ke server.
  • Karena variabel tidak ditampilkan di URL, halaman tidak bisa dibookmark.

Validasi Formulir dengan PHP

Validasi data form sangat penting untuk melindungi skrip dari kode berbahaya. Kita akan bahas cara melakukan validasi data form yang benar.

Membuat Formulir dengan Validasi

Pertama, kita buat formulir yang sama seperti sebelumnya, tapi kali ini kita tambahkan validasi di file PHP-nya.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Formulir dengan Validasi</title>
</head>
<body>

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST">
    Nama: <input type="text" name="name" required><br>
    E-mail: <input type="text" name="email" required><br>
    <input type="submit" value="Kirim">
</form>

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

    if (!preg_match("/^[a-zA-Z-' ]*$/", $name)) {
        echo "Hanya huruf dan spasi yang diizinkan pada nama<br>";
    } else {
        echo "Nama: $name<br>";
    }

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo "Format email tidak valid<br>";
    } else {
        echo "Email: $email<br>";
    }
}

function test_input($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>

</body>
</html>

Penjelasan Kode Validasi

  • htmlspecialchars($_SERVER["PHP_SELF"]): Ini untuk melindungi dari serangan XSS. Dengan ini, form akan dikirim ke halaman yang sama untuk memproses data.
  • test_input(): Fungsi ini untuk membersihkan data input dengan trim(), stripslashes(), dan htmlspecialchars().
  • preg_match(): Untuk memeriksa apakah nama hanya mengandung huruf dan spasi.
  • filter_var(): Untuk memvalidasi format email.

Penutup

Validasi formulir sangat penting untuk menjaga keamanan aplikasi web kita. Dengan memeriksa dan membersihkan data input, kita bisa mencegah serangan-serangan yang bisa merusak aplikasi kita. Selalu pastikan untuk memvalidasi data sebelum memprosesnya. Semoga bermanfaat dan selamat mencoba!๐Ÿ”ฅ๐Ÿ”ฅ

Baca juga :

About the Author

Need more coffee ☕, If you want to support me to pay domain, you can donate via Donate or Trakteer

Posting Komentar

Komentar blog
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.