Dalam dunia internet, protokol yang umum digunakan adalah protokol HTTP, protokol ini memiliki beberapa metode request (request method) diantaranya adalah dari GET dan POST, jadi GET dan POST ini berdiri sendiri tidak berhubungan dengan bahasa pemrograman seperti PHP dan ASP, sehingga jika kita membicarakan GET dan POST pada PHP, maka sebenarnya kita sedang membicarakan GET dan POST pada HTTP. Show Dalam berkomunikasi, PHP menggunakan ptorokol HTTP (ya memang karena php merupakan bahas pemrograman berbasis web), oleh karena itu PHP juga menyediakan sarana untuk berinteraksi dengan kedua metode request tersebut yaitu: (1) menyimpan data GET dan POST dan (2) mengirim data GET dan POST. Pada artikel kali ini kita hanya akan membahas yang nomor 1, pembahasan kali terdiri dari beberapa bagian:
Get dan Post Pada PHP dan HTTP1. GET pada HTTP dan $_GET pada PHPDalam bahasa inggris kita akrab dengan istilah GETting, dari istilah tersebut dapat diartikan bahwa metode GET pada HTTP ditujukan untuk mengambil (get) data dari server. Pada metode ini umumnya data
berbentuk query string yang dikirim via url, data tersebut berupa pasangan Sebelum dikirim, terlebih dahulu data diproses sehingga memenuhi standar format URL. URL hanya boleh memuat huruf (besar dan kecil), angka, dan beberapa karakter lain dalam ASCII Character Set seperti (“.-_~),
karakter di luar itu akan diubah ke format tertentu yang diawali tanda
angka pada kolom (URL Encoded) merupakan nilai hexadecimal dari character ASCII, disamping itu URL juga tidak boleh memuat spasi, sehingga spasi akan diubah menjadi tanda Berikut ini merupakan contoh penggunaan metode GET pada form.  Kita buat file registrasi.php dan tuliskan kode HTML berikut ini:
setelah itu simpan dan jalankan pada browser, pada field yang muncul, misal kita isikan nama: Agus Prawoto Hadi, email: , jika kita klik Submit, maka browser akan mengirim request dengan bentuk seperti gambar berikut ini: Gambar 1. GET Pada HTTP dari gambar diatas terlihat bahwa metode yang kita gunakan adalah GET disertai query string nya, disamping itu url pada browser juga akan berubah menjadi: https://jagowebdev.com/?nama=Agus+Prawoto+Hadi&email=prawoto%40gmail.com&submit=submit dari data diatas terlihat bahwa <spasi> baik pada query string maupun pada url diencode menjadi tanda + dan @ menjadi %40. Ketika kita ambil data tersebut dengan PHP maka otomatis data pada url akan didecode sehingga kita dapatkan bentuk asli dari data yang kita kirim, mari kita tambahkan kode pada file registrasi.php, sehingga menjadi:
ketika kita refresh browser maka akan kita dapatkan hasil: Nama: Agus Prawoto Hadi Email: Variabel $_GET pada PHP berbentuk associative array. Variabel ini bentuknya sama seperti variabel pada umumnya, bedanya $_GET ini merupakan variabel globlal sehingga bisa diaksess dimana saja. Karena bentuknya sama dengan yang lain, variabel ini dapat kita manipulasi sebagaimana kita memanipulasi variabel array lainnya, misal dengan menambahkan nilainya: Kelebihan dan Kekurangan Terdapat beberapa kelebihan penggunaan metode GET, diantaranya adalah:
Meskipun banyak kelebihannya, penggunaan metode ini memiliki beberpa kelemahan yaitu:
2. POST pada HTTP dan $_POST pada PHPKita sering mendengar istilah post, yang biasanya terkait dengan POSTing ke sosial media, dimana pada kegiatan tersebut kita mengirim data berupa tulisan atau gambar untuk disimpan di server sosial media tersebut. Begitu juga dengan istilah POST pada HTTP, POST digunakan untuk mengirim data yang biasanya di gunakan untuk menambah/merubah data pada server. Pada protokol HTTP, metode POST dapat dikirim baik melalui query string maupun body, seperti pada GET, data yang dikirim melalui query string akan ditampilkan pada URL dan sedangkan yang dikirim melalui body tidak terlihat oleh user. Pada PHP, data POST yang dikirim melalui query string disimpan pada variabel $_GET (seperti metode GET) sedangkan yang dikirim melalui body disimpan pada variabel $_POST. Sama seperti $_GET, variabel $_POST juga berbentuk associative array dan bersifat global yang artinya dapat diakses dimana saja, selain itu juga dapat dilakukan manipulasi sebagaimana variabel array lainnya. Penggunaan metode POST sering kita jumpai terutama pada saat pengiriman data menggunakan form html. Misal: meneruskan contoh sebelumnya,
pada file registrasi.php kita ganti method pada bagian form dari
misal field kita isi dengan nama: Agus Prawoto Hadi dan Email: , ketika kita klik submit, maka browser akan mengirim request ke server dengan bentu seperti gambar dibawah ini: Gambar 2. POST Pada HTTP dari gambar diatas terlihat data dikirim pada bagian body (kotak merah paling bawah)
dan data yang dikirim diencode dengan sistem sama dengan GET (url encode) yang memang secara default cara pengiriman data pada POST adalah menggunakan POST yang dikirim via query string dan HTTP body Sebelumnya telah kita singgung mengenai pengiriman POST melaui query string yang artinya akan ditampilkan pada URL. Sering kita fahami bahwa semua yang ada di URL adalah GET, karena kita sering berinteraksi dengan variabel $_GET dan dalam praktek hal tersebut tidak pernah menjadi masalah, tidak akan ada error yang muncul. Namun demikian sebenarnya yang terjadi tidaklah demikian, coba kita buka kembali file register.php dan kita ubah menjadi:
misal kita isi dengan data yang sama dengan contoh sebelumnya, maka ketika kita klik submit, hasil yang kita peroleh adalah:
dan bentuk HTTP Requestnya seperti gambar dibawah ini: Gambar 3. Query String Pada POST dari gambar diatas terlihat bahwa metode yang kita gunakan adalah POST dan data dikirim dengan dua cara baik melalui query string maupun HTTP body. query string disimpan pada variabel $_GET dan HTTP body disimpan pada variabel $_POST Kelebihan dan kekurangan Pengiriman data menggunakan metode POST memiliki beberapa kelebihan diantaranya:
Meskipun terdapat kelebihan, penggunaan metode ini juga memiliki beberpa kelemahan, walaupun sebenarnya bukan kelemahan melainkan memang menjadi karakteristik dari metode ini:
3. Kapan Menggunakan GET dan Kapan Menggunakan POSTUntuk memutuskan apakah kita akan menggunakan metode GET atau POST, kita harus selalu mengajukan pertanyaan: apakah akan terjadi perubahan pada server? jika ya, maka kita gunakan POST, jika tidak maka kita gunakan GET. Contohnya adalah ketika membuat pagination, kita cukup menggunakan GET tidak perlu POST, bisa dibayangkan ketika kita sudah sampai halaman 5 suatu artikel, dan kita mau membookmarknya untuk dibaca di lain waktu, dan ternyata tidak bisa karena halaman tersebut mengunakan POST, dengan terpaksa kita harus membuka halaman 1 lagi!, Begitu juga dengan sistem pencarian seperti pada google, bisa dibayangkan jika metode yang digunakan adalah POST. Contoh lainnya adalah penggunaan ID untuk menghapus data, perhatikan url berikut: http://www.contoh.com/user.php?action=delete&id=1, url ini akan berbahaya jika hal ini benar-benar terjadi. Kenapa? Karena data user akan terhapus dengan begitu mudahnya, lain halnya jika ID tersebut digunakan hanya untuk menampilkan data seperti http://www.contoh.com/user.php?action=view&id=1. singkatnya GET untuk READ data, POST untuk CREATE, UPDATE, DELETE data. Pertanyaan kedua adalah apakah ada data sensitif yang dikirim? jika ya maka kita gunakan POST. Contohnya adalah pengiriman username dan password ketika login, atau data keuangan seperti kartu kredit. Jika data tersebut dikirim via url maka jelas data tersebut akan terekspose kemana-mana terutama jika ter index oleh google. (Kecuali pada penggunaan AJAX). 4. $_REQUEST pada PHPPHP menyediakan variabel global bernama $_REQUEST, variabel ini merupakan gabungan dari tiga variabel yaitu: $_GET, $_POST dan $_COOKIE. Karakteristik variabel ini sama dengan $_GET dan $_POST yaitu berbentuk associative array yang bersifat global dan dapat kita manipulasi seperti variabel array lainnya. Dalam pembentukan variabel $_REQUEST, variabel yang menjadi prioritas adalah $_POST, sehingga jika antara $_GET dan $_POST terdapatÂÂ
seperti pada contoh sebelumnya, kita isikan nama: Agus Prawoto Hadi dan email: , ketika kita submit maka kita dapatkan hasil:
dari contoh diatas terlihat bahwa nilai action yang digunakan adalah insert yang terdapat pada variabel $_POST Saya pribadi jarang dan mungkin tidak pernah menggunakan variabel $_REQUEST karena akan menyulitkan dan membuat ambigu, tidak jelas dari mana datangnya data apakah dari inputan user atau dari url, terlebih jika program yang kita buat kompleks, dengan menggunakan $_GET atau $_POST masalah tersebut tidak akan terjadi. Kesimpulan GET dan POST merupakan metode yang digunakan protokol HTTP untuk pertukaran data. Pada PHP, data yang dikirim menggunakan metode GET akan disimpan dalam variabel $_GET, sedangkan POST akan disimpan pada variabel $_POST (untuk data yang dikirim via  url disimpan pada variabel $_GET). Masing masing metode memiliki kelebihan dan kekurangan dan memang sebenarnya kedua metode tersebut ditujukan untuk keperluan berbeda, sehingga kita harus tahu kapan menggunakan GET dan kapan menggunakan POST. PHP juga menyediakan variabel $_REQUEST yang merupakan gabungan dari variabel $_GET, $_POST dan $_COOKIE. Pada variabel ini tidak terlihat dari mana datangnya data apakah dari GET atau POST sehingga sebaiknya lebih berhati hati ketika menggunakan variabel ini. Demikian pembahasan mengenai GET dan POST pada PHP dan HTTP semoga dapat bermanfaat. Jangan lupa beritahu sobat yang lain: Subscibe NowSuka dengan artikel di Jagowebdev.com? jangan sampai ketinggalan, segera join ke milis kami untuk update informasi terbaru dari Jagowebdev.com Apa itu method POST?Method POST Mengirimkan Data Secara Langsung.
Maksudnya adalah mengirimkan sebuah data atau nilai / value langsung ke file lain. Pemakaian method POST ini digunakan untuk mengirimkan data yang penting / kredensial dan data yang orang lain tidak boleh tau / secret data, seperti password, dan sebagainya.
Apa fungsi method POST?Method POST akan mengirimkan data atau nilai langsung ke action untuk ditampung, tanpa menampilkan pada URL.
Apa itu Post dalam PHP?Fungsi POST dan GET pada PHP adalah sama yaitu untuk menampung data atau nilai dari sebuah form atau url sebelum dimanipulasi, post dan get keduanya akan menjadi sebuah nilai dari atribut method pada php.
Apa itu GET dan POST di PHP?Form pada PHP mempunyai dua method pengiriman data, yaitu GET dan POST. Dengan menggunakan method GET, maka nilai variabel yang dikirimkan ke server melalui url pada address bar browser. Sedangkan method POST akan mengirimkan nilai variabel ke server secara terpisah, sehingga nilai variabelnya tidak terlihat.
|