$_GET adalah variabel bawaan dalam PHP yang digunakan untuk mengumpulkan data setelah pengiriman formulir dengan metode method="get", atau untuk mengambil data yang dikirimkan melalui parameter URL (query string). Data yang dikirimkan melalui $_GET dapat dilihat oleh semua orang karena tersimpan langsung di bilah alamat URL, sehingga tidak boleh digunakan untuk mengirimkan informasi sensitif seperti kata sandi.
Variabel ini termasuk dalam kategori superglobal, yang berarti variabel ini selalu dapat diakses, terlepas dari cakupannya (scope), dan dapat diakses dari fungsi, kelas, atau file apa pun tanpa perlu melakukan deklarasi global terlebih dahulu.
Sintaks dan Cara Kerja Dasar
Query string pada URL dimulai setelah karakter tanda tanya (?) dan terdiri dari pasangan nama dan nilai yang dipisahkan oleh ampersand (&). Contoh struktur URL dengan parameter $_GET:
http://example.com/halaman.php?nama=Budi&usia=25
Untuk mengambil nilai dari parameter tersebut di dalam file halaman.php, Anda cukup memanggil array asociatif $_GET dengan kunci yang sesuai:
<?php
$nama = $_GET['nama'];
$usia = $_GET['usia'];
echo "Halo, $nama! Usia Anda adalah $usia tahun.";
?>
Tabel Perbandingan Metode Pengiriman Data ($_GET vs $_POST)
| Parameter | $_GET | $_POST |
|---|---|---|
| Visibilitas Data | Terlihat pada URL (Query String) | Tersembunyi di dalam HTTP Body |
| Batasan Ukuran | Terbatas (biasanya maksimal ~2048 karakter tergantung browser) | Sangat besar (tergantung konfigurasi server post_max_size) |
| Keamanan | Rendah, tidak aman untuk data rahasia | Lebih aman, cocok untuk data kredensial/formulir login |
| Bookmark & Cache | Dapat di-bookmark dan di-cache oleh browser | Tidak dapat di-bookmark atau di-cache |
Contoh Implementasi Praktis
Berikut adalah contoh kode lengkap untuk menangani input dari pengguna melalui tautan atau formulir pencarian sederhana:
<!-- Form HTML dengan method GET -->
<form action="search.php" method="get">
<label for="q">Cari Kata Kunci:</label>
<input type="text" id="q" name="q">
<button type="submit">Cari</button>
</form>
<!-- Kode PHP di search.php -->
<?php
if (isset($_GET['q'])) {
// Mengamankan output untuk mencegah XSS
$keyword = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8');
echo "Anda mencari: " . $keyword;
} else {
echo "Silakan masukkan kata kunci pencarian.";
}
?>
Validasi dan Keamanan Penggunaan $_GET
Karena data $_GET berasal dari pengguna eksternal (sisi klien), data tersebut tidak pernah boleh dipercaya begitu saja. Mengabaikan validasi dapat membuka celah keamanan seperti Cross-Site Scripting (XSS) dan SQL Injection jika data tersebut langsung dimasukkan ke dalam kueri database.
Langkah-langkah Pengamanan:
- Gunakan fungsi
isset()atauempty(): Selalu pastikan bahwa parameter yang diharapkan benar-benar ada sebelum mengaksesnya untuk menghindari pesan Undefined index notice. - Sanitasi dan Escape Data: Gunakan fungsi seperti
htmlspecialchars()saat mencetak ulang nilai ke peramban untuk mencegah eksekusi skrip berbahaya. - Gunakan Prepared Statements: Jika data
$_GETdigunakan untuk berinteraksi dengan database, pastikan menggunakan PDO atau MySQLi dengan parameter terikat (prepared statements).