Materi
Formulir HTML dengan `method="get"` mengirim isiannya di alamat halaman, misalnya `cari.php?kota=Medan&hal=2`; PHP menyediakannya di array `$_GET`. Formulir dengan `method="post"` mengirim isian di badan permintaan, dan PHP menyediakannya di `$_POST`. Bedanya metode GET dan POST dibahas di kelas HTTP dan API. Semua nilai yang datang dari formulir bertipe string, termasuk angka.
Kunci yang tidak dikirim tidak ada di array, dan membacanya langsung memicu peringatan. Operator `??` mengambil nilai di kirinya bila ada dan tidak null, atau nilai di kanannya bila tidak: `$_GET["hal"] ?? 1`.
Masukan pengguna tidak boleh dicetak apa adanya ke HTML. Bila seseorang mengirim `<script>` sebagai namanya, peramban pengunjung lain menjalankan skrip itu: serangan cross-site scripting (XSS), yang di OWASP Top 10 termasuk kategori Injection dan dibahas di kelas Keamanan Siber untuk Organisasi. Pertahanannya di PHP adalah `htmlspecialchars()` tepat saat mencetak. Fungsi ini mengubah `&`, `<`, `>`, kutip ganda, dan kutip tunggal menjadi entitas seperti `<`, sehingga peramban menampilkannya sebagai teks.
<?php
$nama = $_GET["nama"] ?? "Tamu";
echo "<p>Halo, " . htmlspecialchars($nama) . "</p>";