PHP : GET dan POST

Metode Mengirim Informasi ke Server

Browser web berkomunikasi dengan server biasanya menggunakan salah satu dari dua metode HTTP (Hypertext Transfer Protocol) – GET dan POST. Kedua metode menyampaikan informasi secara berbeda dan memiliki kelebihan dan kekurangan yang berbeda, seperti dijelaskan di bawah ini.

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.example.com/action.php?name=john&age=24

Bagian tebal dalam URL adalah parameter GET dan bagian miring adalah nilai parameter tersebut. Lebih dari satu parameter-value dapat disematkan (embedded) di URL dengan menggabungkan dengan ampersand ( & ). Seseorang dapat mengirim data teks sederhana melalui metode GET.

Keuntungan dan Kerugian Menggunakan Metode GET
  • Karena data yang dikirim oleh metode GET ditampilkan dalam URL, dimungkinkan untuk menandai halaman dengan query nilai string tertentu.
  • Metode GET tidak cocok untuk menyampaikan informasi sensitif seperti nama pengguna dan kata sandi, karena ini sepenuhnya terlihat dalam string query URL serta berpotensi disimpan dalam memori browser klien sebagai halaman yang dikunjungi.
  • Karena metode GET assign data ke variabel lingkungan server, maka panjang URL-nya terbatas. Jadi, ada batasan untuk total data yang akan dikirim.

PHP menyediakan variabel superglobal $_GET untuk mengakses semua informasi yang dikirim baik melalui URL atau dikirimkan melalui form HTML menggunakan method=”get”.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Example of PHP GET method</title>
</head>
<body>
<?php
if(isset($_GET["name"])){
    echo "<p>Hi, " . $_GET["name"] . "</p>";
}
?>
<form method="get" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>
</body>
Metode POST

Dalam metode POST data dikirim ke server sebagai paket dalam komunikasi yang terpisah dengan skrip processing. Data yang dikirim melalui metode POST tidak akan terlihat di URL.

Keuntungan dan Kerugian Menggunakan Metode POST
  • Metode Ini lebih aman daripada GET karena informasi yang dimasukkan pengguna tidak pernah terlihat dalam string query 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, maka tidak mungkin untuk mem-bookmark halaman dengan query tertentu.

Seperti $_GET, PHP menyediakan variabel superglobal lainnya $_POST untuk mengakses semua informasi yang dikirim melalui metode posting atau dikirimkan melalui formulir HTML menggunakan method=”post”.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Example of PHP POST method</title>
</head>
<body>
<?php
if(isset($_POST["name"])){
    echo "<p>Hi, " . $_POST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>
</body>
Variabel $_REQUEST

PHP menyediakan variabel superglobal lainnya $_REQUEST yang berisi nilai-nilai variabel $_GET dan $_POST serta nilai-nilai variabel superglobal $_COOKIE.

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Example of PHP $_REQUEST variable</title>
</head>
<body>
<?php
if(isset($_REQUEST["name"])){
    echo "<p>Hi, " . $_REQUEST["name"] . "</p>";
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
    <label for="inputName">Name:</label>
    <input type="text" name="name" id="inputName">
    <input type="submit" value="Submit">
</form>
</body>