PHP GET dan POST: Mengirim Data dari Form

Interaksi pengguna dengan aplikasi web umumnya terjadi melalui form — mulai dari kotak pencarian hingga formulir pendaftaran. Ketika pengguna mengirim form, datanya harus dikirim ke server untuk diproses. Dua metode utama untuk itu adalah PHP GET dan POST. Memahami perbedaan keduanya penting agar aplikasi Anda berfungsi dengan benar sekaligus aman.

Bagaimana Form Mengirim Data?

Setiap elemen <form> memiliki atribut method yang menentukan cara pengiriman data: get atau post. PHP kemudian menangkap data tersebut melalui variabel superglobal $_GET atau $_POST.

Metode GET

Dengan GET, data dikirim melalui URL sebagai query string dan terlihat di address bar. Cocok untuk data yang tidak sensitif seperti pencarian atau filter:

<form method="get">
  <input type="text" name="cari">
  <button type="submit">Cari</button>
</form>

<?php
if (isset($_GET["cari"])) {
    echo "Anda mencari: " . htmlspecialchars($_GET["cari"]);
}
?>

Setelah dikirim, URL akan tampak seperti halaman.php?cari=laptop. Karena datanya terlihat, GET tidak boleh dipakai untuk informasi rahasia seperti password. GET juga memiliki batas panjang URL.

Metode POST

Dengan POST, data dikirim di dalam body request sehingga tidak tampil di URL. Ini cocok untuk data sensitif atau berukuran besar:

<form method="post">
  <input type="password" name="sandi">
  <button type="submit">Login</button>
</form>

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $sandi = $_POST["sandi"];
    // proses login...
}
?>

Perbandingan GET dan POST

AspekGETPOST
Lokasi dataDi URL (terlihat)Di body (tersembunyi)
KeamananRendahLebih baik
Batas ukuranTerbatasBesar
Bisa di-bookmarkYaTidak
Cocok untukPencarian, filterLogin, simpan data

Kapan Memakai yang Mana?

Gunakan GET saat hanya mengambil atau menampilkan data (pencarian, filter, pagination) — karena URL-nya bisa dibagikan dan disimpan. Gunakan POST saat data mengubah sesuatu di server (login, menyimpan, menghapus, upload). Ada juga $_REQUEST yang menampung keduanya, tetapi sebaiknya pakai yang spesifik agar lebih aman dan jelas.

Keamanan: Jangan Pernah Percaya Input

Ini aturan emas: apa pun metodenya, input pengguna harus selalu divalidasi dan disaring. Dua langkah penting:

  • Saat menampilkan input, gunakan htmlspecialchars() untuk mencegah serangan XSS.
  • Saat menyimpan ke database, gunakan prepared statement untuk mencegah SQL injection.
<?php
// Contoh aman menampilkan input
echo htmlspecialchars($_POST["nama"] ?? "");
?>

Kesalahan Umum

  • Memakai GET untuk password — datanya bocor di URL dan riwayat browser.
  • Langsung memakai input tanpa validasi, membuka celah keamanan serius.
  • Tidak mengecek isset() sebelum mengakses data, memunculkan warning.

Kesimpulan

Kini Anda memahami perbedaan PHP GET dan POST serta kapan menggunakannya: GET untuk mengambil data, POST untuk mengirim data yang mengubah sesuatu. Yang terpenting, selalu perlakukan input pengguna sebagai sesuatu yang tidak tepercaya. Ini bekal penting sebelum masuk ke pemrosesan form dan koneksi database.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

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