PHP memilik variabel superglobal yang bisa kita akses dan pakai dimana saja. Berikut variabel superglobal yang sudah disediakan PHP:
- $_GET
- $_POST
- $_REQUEST
- $_SERVER
- $_SESSION
- $_ENV
- $_COOKIE
Namun yang akan kita pelajari metode request GET dan POST dimana metode ini berbeda dengan variabel superglobal. Contoh, kita bisa mengirimkan data ke halaman lain melalui metode request GET yang nanti akan ditangkap oleh variabel superglobal $_GET.
Contoh Kasus Metode GET
Kita akan membuat sebuah list nama buku. Jika di klik, akan menampilkan halaman detil buku tersebut. Berikut sintaksnya:
$books = [
[
"nama" => "Matematika",
"penerbit" => "Pustaka Utama",
"tahun" => "2019",
"penulis" => "Dondon Oskadon",
"foto" => "matematika.jpeg"
],
[
"nama" => "Kimia",
"penerbit" => "Gramedia Utama",
"tahun" => "2007",
"penulis" => "Donnita Kumala",
"foto" => "kimia.jpeg"
]
];
foreach($books as $book){
?>
<a href="contoh-get.php?nm=<?= $book["nama"];
?>&pn=<?= $book["penerbit"];
?>&ft=<?= $book["foto"]; ?> ">
<?= $book["nama"]; ?>
</a>
<br>
<?php
}
Hasilnya adalah :
Perhatikan pada baris kode berikut:
<a href="contoh-get.php?nm=<?= $book["nama"];
?>&pn=<?= $book["penerbit"];
?>&ft=<?= $book["foto"]; ?> ">
<?= $book["nama"]; ?>
</a>
Ada link yang mengarah ke halaman baru yaitu file contoh-get.php yang mana pada url-nya kita mengirim data yang nanti akan ditangkap oleh variabel superglobal $_GET. Sekarang buat file php baru dengan nama contoh-get.php lalu isi dengan kode dibawah ini:
<ul>
<li><img src="img/<?= $_GET["ft"]; ?>" width="80"></li>
<li>Nama : <?= $_GET["nm"]; ?></li>
<li>Penerbit : <?= $_GET["pn"]; ?></li>
</ul>
Kalau kita ekseskusi pada halaman pertama ada list nama buku, lalu kita klik buku tersebut maka akan menampilkan detil buku tersebut seperti terlihat pada gambar di bawah ini:
Kalau kita langsung membuka link atau file
contoh-get.php tanpa mengirim data terlebih dahulu, maka akan error, karena variabel superglobal $_GET langsung mencetak data tanpa dikirim. Maka harus dilakukan validasi dahulu, menggunakan
function Isset. Isset adalah untuk mengecek sebuah variabel pernah dibuat atau belum. Berikut kode tambahan isset:
if (!isset($_GET["nm"])) {
// redirect ke halaman awal
header("Location: index.php");
exit;
}
Kode di atas mencoba untuk memvalidasi jika variabel $_GET["nm"] kosong atau belum dibuat, maka dredirect atau kembalikan he halaman yang semestinya, dimana halaman yang dimaksud adalah index.php.
Contoh Kasus Metode POST
Berbeda dengan GET yang datanya dikirim via url, untuk POST datanya dikirim via form. Untuk latihan, buat file baru dengan nama bebas, misal post.php. Lalu buat kode seperti di bawah ini:
<form action="latihan-post.php" method="post">
Masukan Nama<br>
<input type="text" name="nama">
<br>
<button type="submit" name="submit">Kirim</button>
</form>
Dari kode di atas, terdapat method post, dimana ketika kita klik tombol kirim, maka form tersebut akan melakukan action ke file lain yaitu latihan-post.php. File ini nantinya akan menampung atau menangkap dan mengelola data yang dikirm dari halaman post.php melalui method POST.
Jika dijalankan hasilnya di browser seperti berikut:
Sekarang bua file untuk action method-nya yaitu file latihan-post.php. Kodenya sebagai berikut:
<h1>Selamat Datang <?= $_POST["isi_nama"]; ?></h1>
Dari kode di atas, data yang dikirim via input box yang diberi nama isi_nama oleh method POST, akan di tangkap oleh variabel superglobal $_POST yang kemudian akan ditampilkan di browser.
Jika kita jalankan, dan form tersebut kita isi nama KopiKuka, lalu kita klik tombol kirim, maka akan tampil seperti dibawah ini:
Tidak ada komentar:
Posting Komentar