PHP - Metode GET & POST
Ada dua cara klien browser dapat mengirim informasi ke server web.
- Metode GET
- Metode POST
Sebelum browser mengirimkan informasi, ia mengkodekannya menggunakan skema yang disebut pengkodean URL. Dalam skema ini, pasangan nama / nilai digabungkan dengan tanda yang sama dan pasangan yang berbeda dipisahkan oleh ampersand.
name1=value1&name2=value2&name3=value3
Spasi dihapus dan diganti dengan karakter + dan karakter nonalfanumerik lainnya diganti dengan nilai heksadesimal. Setelah informasi dikodekan, itu dikirim ke server.
Metode GET
Metode GET mengirimkan informasi pengguna yang dikodekan yang ditambahkan ke permintaan halaman. Halaman dan informasi yang dikodekan dipisahkan oleh? karakter.
http://www.test.com/index.htm?name1=value1&name2=value2
Metode GET menghasilkan string panjang yang muncul di log server Anda, di kotak Lokasi: browser.
Metode GET dibatasi untuk mengirim hingga 1024 karakter saja.
Jangan pernah menggunakan metode GET jika Anda memiliki kata sandi atau informasi sensitif lainnya untuk dikirim ke server.
GET tidak dapat digunakan untuk mengirim data biner, seperti gambar atau dokumen word, ke server.
Data yang dikirim dengan metode GET dapat diakses menggunakan variabel lingkungan QUERY_STRING.
PHP menyediakan $_GET asosiatif untuk mengakses semua informasi yang dikirim menggunakan metode GET.
Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.
<?php
if( $_GET["name"] || $_GET["age"] ) {
echo "Welcome ". $_GET['name']. "<br />";
echo "You are ". $_GET['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "GET">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
Ini akan menghasilkan hasil sebagai berikut -
Metode POST
Metode POST mentransfer informasi melalui header HTTP. Informasi dikodekan seperti yang dijelaskan dalam kasus metode GET dan dimasukkan ke dalam tajuk yang disebut QUERY_STRING.
Metode POST tidak memiliki batasan ukuran data yang akan dikirim.
Metode POST dapat digunakan untuk mengirim ASCII serta data biner.
Data yang dikirim dengan metode POST melewati HTTP header sehingga keamanan bergantung pada protokol HTTP. Dengan menggunakan HTTP Aman, Anda dapat memastikan bahwa informasi Anda aman.
PHP menyediakan $_POST asosiatif untuk mengakses semua informasi yang dikirim menggunakan metode POST.
Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.
<?php
if( $_POST["name"] || $_POST["age"] ) {
if (preg_match("/[^A-Za-z'-]/",$_POST['name'] )) {
die ("invalid name and name should be alpha");
}
echo "Welcome ". $_POST['name']. "<br />";
echo "You are ". $_POST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
Ini akan menghasilkan hasil sebagai berikut -
Variabel $ _REQUEST
Variabel PHP $ _REQUEST berisi konten dari $ _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.
Coba contoh berikut dengan meletakkan kode sumber dalam skrip test.php.
<?php
if( $_REQUEST["name"] || $_REQUEST["age"] ) {
echo "Welcome ". $_REQUEST['name']. "<br />";
echo "You are ". $_REQUEST['age']. " years old.";
exit();
}
?>
<html>
<body>
<form action = "<?php $_PHP_SELF ?>" method = "POST">
Name: <input type = "text" name = "name" />
Age: <input type = "text" name = "age" />
<input type = "submit" />
</form>
</body>
</html>
Di sini variabel $ _PHP_SELF berisi nama skrip mandiri yang dipanggil.
Ini akan menghasilkan hasil sebagai berikut -