PHP Series : GET & POST Dalam PHP
Hallo, dalam tutorial PHP Series kali ini kita akan belajar mengirim informasi ke server menggunakan metode HTTP GET dan POST serta mengambilnya kembali menggunakan PHP.
Metode Mengirim Informasi ke Server dalam PHP
Dalam berkomunikasi dengan server biasanya web browser menggunakan salah satu dari dua metode HTTP (Hypertext Transfer Protocol) yaitu GET dan POST. Kedua metode menyampaikan informasi secara berbeda dan memiliki kelebihan dan kekurangan yang berbeda, seperti dijelaskan di bawah ini.
1. Menggunakan Metode GET
Dalam metode GET, data dikirim sebagai parameter URL yang biasanya berupa rangkaian pasangan nama dan nilai yang dipisahkan oleh ampersand (&). Secara umum, URL dengan data GET akan terlihat seperti ini:
http://www.rumahit.id/mahasiswa.php?nama=vanessa&npm=12321
nama dan npm dalam URL adalah parameter GET dan bagian miring adalah nilai parameter tersebut. Lebih dari satu parameter = nilai dapat disematkan di URL dengan menyatukan dengan ampersand (&). Seseorang hanya dapat mengirim data teks sederhana melalui metode GET.
- Karena data yang dikirim oleh metode GET ditampilkan dalam URL, dimungkinkan untuk menandai halaman dengan nilai string kueri tertentu.
- Metode GET tidak cocok untuk menyampaikan informasi sensitif seperti nama pengguna dan kata sandi, karena ini sepenuhnya terlihat dalam string kueri URL serta berpotensi disimpan dalam memori browser klien sebagai halaman yang dikunjungi.
- Karena metode GET memberikan data ke variabel lingkungan server, panjang URL terbatas. Jadi, ada batasan untuk total data yang akan dikirim.
Variabel GET dalam PHP
PHP menyediakan variabel superglobal $ _GET untuk mengakses semua informasi yang dikirim baik melalui URL atau dikirimkan melalui formulir HTML menggunakan metode = "get".
Contoh Program :
<!DOCTYPE html> <html lang="en"> <head> <title>Contoh Metode GET dalam PHP</title> </head> <body> <?php if(isset($_GET["nama"])){ echo "<p>Nama Mahasiswa, " . $_GET["nama"] . "</p>"; } ?> <form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputName">Nama:</label> <input type="text" name="nama" id="inputNama"> <input type="submit" value="Submit"> </form> </body>
2. Menggunakan Metode POST
Dalam metode POST data dikirim ke server sebagai paket dalam komunikasi terpisah dengan skrip pemrosesan. Data yang dikirim melalui metode POST tidak akan terlihat di URL.
Kelebihan dan Kekurangan Menggunakan Metode POST :
- Metode POSTlebih aman daripada GET karena informasi yang dimasukkan pengguna tidak pernah terlihat dalam string kueri URL atau dalam log server.
- Ada batasan yang jauh lebih besar pada jumlah data yang dapat dilewati dan seseorang dapat mengirim data teks serta data biner (mengunggah file) menggunakan POST.
- Karena data yang dikirim oleh metode POST tidak terlihat di URL, jadi tidak mungkin untuk menandai halaman dengan permintaan tertentu.
Variabel POST dalam PHP
Sama seperti $ _GET, PHP menyediakan variabel superglobal lain $ _POST untuk mengakses semua informasi yang dikirim melalui metode posting atau dikirimkan melalui formulir HTML menggunakan metode = "post".
Contoh Program :
<!DOCTYPE html> <html lang="en"> <head> <title>Example of PHP POST method</title> </head> <body> <?php if(isset($_POST["nama"])){ echo "<p>Nama Mahasiswa : " . $_POST["nama"] . "</p>"; } ?> <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>"> <label for="inputNama">Nama Mahasiswa :</label> <input type="text" nama="nama" id="inputNama"> <input type="submit" value="Submit"> </form> </body>
3. Variabel $_REQUEST Dalam PHP
Variabel $ _REQUEST dalam PHP berisi konten $ _GET, $ _POST, dan $ _COOKIE. Kami akan membahas variabel $ _COOKIE ketika kami akan menjelaskan tentang cookie.
Variabel PHP $ _REQUEST dapat digunakan untuk mendapatkan hasil dari data formulir yang dikirim dengan metode GET dan POST.
Contoh Program :<?php if( $_REQUEST["nama"] || $_REQUEST["npm"] ) { echo "Nama Mahasiswa". $_REQUEST['nama']. "<br />"; echo "NPM ". $_REQUEST['npm']. ""; exit(); } ?> <html> <body> <form action = "<?php $_PHP_SELF ?>" method = "POST"> Nama Mahasiswa: <input type = "text" name = "nama" /> NPM: <input type = "text" name = "npm" /> <input type = "submit" /> </form> </body> </html>