Haloo teman-teman ataupun biasanya saya panggil sobat(biar lebih singkat), di artikel ini saya akan membagikan sedikit sekali pengetahuan tentang bahasa pemograman PHP, yang akan kita bahas sekarang ini adalah cURL. Diartikel ini saya khususkan untuk membahas menggunakan cURL untuk login atau mengirimkan data $_POST ke suatu halaman.
Sistem login yang kita gunakan di tutorial ini tidak terlalu aman dan sangat sederhana, berbeda jauh dengan sistem login facebook dan google. Jadi jika sobat berencana untuk masuk otomatis di facebook dan google silahkan berusaha lebih keras lagi.
Sebelum melangkah lebih jauh untuk melakukan login dengan cURL, mari terlebih dahulu berkenalan dengan cURL itu sendiri.
Apa itu cURL?
Saya sebenarnya tidak terlalu paham juga, tapi menurut berbagai sumber cURL merupakan sebuah aplikasi/program open source yang kegunaanya untuk mengambil data dari internet, fungsi-fungsi cURL sangat lengkap hampir sama dengan client asli(manusia), sobat bisa mengirimkan data seperti $_GET dan $_POST dengan curl, mengatur cookie, dan lainnya.
Kegunaan cURL di dunia pemograman PHP sering digunakan untuk mengambil konten dari website lain untuk di manipulasi lagi agar bermanfaat bagi sistem yang dibuat si pengambil, contoh data yang diambil misalnya : seperti informasi cuaca, harga suatu barang, nilai tukar uang, dan seterusnya. Selain itu yang pernah saya temui cURL juga digunakan untuk pembangunan API untuk menjembatani hubungan data antara 2 sistem yang berbeda, untuk informasi lebih lanjut tentang API bisa cari di google ya.
Dengan fungsi cURL tersebut kita bisa mengambil data hampir semua situs yang bisa di kunjungi lewat browser, kecuali jika situs tersebut datanya diambil dengan javascript AJAX yang tidak memerlukan load halaman contohnya saja facebook yang perbindahan halaman semuanya tanpa memerlukan load halaman.
Sedikit penjelasan diatas diharapkan bisa bermanfaat untuk sobat yang ingin mengenal cURL lebih lanjut, jika ada "mastah" yang berkunjung dan terlihat ada kesalahan diartikel ini, mohon dikoreksi dan ditegur dengan berkomentar pada artikel ini.
Sedikit penjelasan diatas diharapkan bisa bermanfaat untuk sobat yang ingin mengenal cURL lebih lanjut, jika ada "mastah" yang berkunjung dan terlihat ada kesalahan diartikel ini, mohon dikoreksi dan ditegur dengan berkomentar pada artikel ini.
Persiapan dan Analisa Data
Halaman login yang akan menjadi target kita adalah halaman login buatan saya sendiri, bisa sobat lihat pada gambar dibawah ini.
Mohon maaf harus saya sensor beberapa informasi yang mungkin sensitif dan bisa dimanfaatkan oleh orang yang tidak bertanggung jawab, jadi saya misalkan saja bahwa URL utama yang akan kita gunakan pada tutorial ini adalah contoh.com. Selanjutnya untuk tahapan awal kita harus menganalisa data apa yang dibutuhkan untuk bisa login ke halaman pada gambar diatas dan ke url mana data tersebut harus di kirim.
Untuk menampilkan source code web seperti gambar diatas, sobat bisa klik kanan mouse pada halaman web lalu klik inspect atau bisa juga dengan menekan tombol F12. Jika sobat sudah pernah membuat halaman login dengan php maka akan tau bahwa setiap isian formulir seperti username dan password sering berada didalam <form></form>, didalam form ini biasanya terdapat 2 parameter penting yaitu method dan action.
Method akan mendifinisikan dengan metode apa data akan di kirim (biasanya get dan post), dan action akan mendifinisikan ke URL mana data tersebut harus dikirimkan. Jika kita melihat pada gambar dibawah ini hanya terdapat parameter method post, sedangkan action URL nya tidak ada.
Jika action tidak didefinisikan maka bisa kita simpulkan data itu dikirim ke URL yang sama yaitu contoh.com/login.php, dan untuk data yang dikirim adalah baris yang mempunyai tag <input> yang masing-masing bernama username dan pass.
Dari analisa source code halaman login diatas kita mendapatkan :
URL tujuan
Data yang dikirim
Untuk menampilkan source code web seperti gambar diatas, sobat bisa klik kanan mouse pada halaman web lalu klik inspect atau bisa juga dengan menekan tombol F12. Jika sobat sudah pernah membuat halaman login dengan php maka akan tau bahwa setiap isian formulir seperti username dan password sering berada didalam <form></form>, didalam form ini biasanya terdapat 2 parameter penting yaitu method dan action.
Method akan mendifinisikan dengan metode apa data akan di kirim (biasanya get dan post), dan action akan mendifinisikan ke URL mana data tersebut harus dikirimkan. Jika kita melihat pada gambar dibawah ini hanya terdapat parameter method post, sedangkan action URL nya tidak ada.
Jika action tidak didefinisikan maka bisa kita simpulkan data itu dikirim ke URL yang sama yaitu contoh.com/login.php, dan untuk data yang dikirim adalah baris yang mempunyai tag <input> yang masing-masing bernama username dan pass.
Dari analisa source code halaman login diatas kita mendapatkan :
URL tujuan
- contoh.com/login.php
Data yang dikirim
- username dengan nama username
- password dengan nama pass
Login Menggunakan cURL
Setelah menganalisa target login yang, sekarang saatnya kita melakukan login otomatis menggunakan cURL, berikut ini adalah fungsi-fungsi yang akan kita gunakan- curl_init() untuk inisialisasi Curl library
- curl_setopt() untuk mengatur opsi Curl, adapun opsi-opsi yang kita gunakan untuk login nantinya adalah.
- CURLOPT_URL Untuk mendefinisikan URL tujuan, dari data yang sudah kita dapat, pada opsi ini bisa ditaruh contoh.com/login.php
- CURLOPT_FOLLOWLOCATION Seperti namanya "ikuti lokasi", berfungsinya akan mengikuti jika URL contoh.com/login.php mengalihkan halaman ke contoh.com/cektransaksi.php jika nantinya sudah berhasil login. Secara umum akan digunakan jika halaman yang ingin kita cURL mungkin akan mengalihkan ke halaman lain.
- CURLOPT_POSTFIELDS Berfungsi mengirim data post, data yang rencananya akan kita kirim adalah username dan pass.
- CURLOPT_RETURNTRANSFER Berfungsi untuk mentranfer data dari hasil eksekusi cURL dengan curl_exec() ke sebuah $variabel, jika menggunakan tanpa CURLOPT_RETURNTRANSFER maka halaman hasil curl akan langsung ditampilkan, dan sebaliknya jika memakai CURLOPT_RETURNTRANSFER data akan disimpan dahulu ke sebuah $variable untuk menampilkannya bisa menggunakan fungsi echo($variable).
- CURLOPT_COOKIEJAR Menyimpan cookie pada file tertentu, kita menggunakan opsi ini karena sistem login target menggunakan SESSION untuk mengidentifikasi user sudah login atau belum (saya ragu tentang penjelasan opsi ini, silahkan sobat cek ke sumber lainnya ya).
- CURLOPT_COOKIEFILE Menggunakan file cookie yang sudah ada, kita menggunakan opsi ini karena sistem login target menggunakan SESSION untuk mengidentifikasi user sudah login atau belum (saya ragu tentang penjelasan opsi ini, silahkan sobat cek ke sumber lainnya ya).
- curl_exec() untuk mengeksekusi query cURL yang sudah selesai di atur.
- curl_close() untuk menutup sistem cURL.
Note : semua penjelasan diatas bisa sobat pelajari lebih lanjut di php.net.
Dari berbagai option itu maka jadilah source code seperti gambar dibawah ini.
Untuk format data post yang ingin di kirim memang wajib harus seperti diatas (username=yogo&pass=1sampai5), sedangkan jika data dikirimkan dengan metode GET bisa langsung didefinisikan di URLnya (https://contoh.com/login.php/?username=yogo&pass=1sampai5).
Selain itu ada juga penulisan source code dengan cara lain seperti dibawah ini, sangat bermanfaat jika data POST yang dikirim sangat banyak.
http_build_query berfungsi mengubah data Array menjadi username=yogo&pass=1sampai5, info selengkapnya bisa sobat lihat disini.
Saatnya kita jalankan source code yang sudah di buat, bisa menggunakan xampp atau hosting online, yang paling penting syaratnya harus mempunyai koneksi internet yang memadai. Beginilah hasil dari menjalankan source code diatas.
Kita berhasil login tetapi dengan tampilan yang berbeda (tanpa css dan js), kenapa hal ini bisa terjadi ? dari hasil analisa dan pendapat saya sendiri, ini karena cURL hanya mengambil data dari suatu URL saja tanpa memuat data URL lain yang mungkin ada pada URL yang kita ambil.
Buktinya bisa dilihat pada gambar diatas, Semua file hostnya berganti ke localhost bukannya contoh.com sedangkan tidak ada data apapun di localhost tersebut karena localhost tidak mengambil data dari contoh.com.
Kalau saya sih karena ini urusan sistem ngapain juga kita memikirkan tampilan, yang penting kita mendapatkan data yang akan kita proses nantinya, pada implementasi login cURL diatas kita mempunyai data table yang bisa diproses(yang saya blur).
Sebenarnya saat belum berhasil saya mendapat beberapa masalah tapi jika saya jelaskan disini maka artikel ini akan terlalu panjang, Jadi saya berharap sobat untuk mempraktekkan dan menganalisa programnya, karena biasanya penjelasan yang didapat dari praktek akan lebih bermanfaat saat proses kodingnya nanti.
Itulah penjelasan login dengan cURL yang sangat sederhana sekali, dan disarankan jangan mudah percaya dengan penjelasan-penjelasan yang sebagian besar dari pendapat saya sendiri, untuk itu coba sobat baca lagi artikel-artikel yang membahas tentang cURL dari sumber-sumber yang berbeda, bertanya ke forum-forum terpercaya, lalu mempraktekkannya, agar pemahaman sobat menjadi semakin jelas. Sampai jumpa di artikel lainnya.
Selain itu ada juga penulisan source code dengan cara lain seperti dibawah ini, sangat bermanfaat jika data POST yang dikirim sangat banyak.
http_build_query berfungsi mengubah data Array menjadi username=yogo&pass=1sampai5, info selengkapnya bisa sobat lihat disini.
Saatnya kita jalankan source code yang sudah di buat, bisa menggunakan xampp atau hosting online, yang paling penting syaratnya harus mempunyai koneksi internet yang memadai. Beginilah hasil dari menjalankan source code diatas.
Login dengan cURL |
Login dengan client biasa |
Buktinya bisa dilihat pada gambar diatas, Semua file hostnya berganti ke localhost bukannya contoh.com sedangkan tidak ada data apapun di localhost tersebut karena localhost tidak mengambil data dari contoh.com.
Kalau saya sih karena ini urusan sistem ngapain juga kita memikirkan tampilan, yang penting kita mendapatkan data yang akan kita proses nantinya, pada implementasi login cURL diatas kita mempunyai data table yang bisa diproses(yang saya blur).
Sebenarnya saat belum berhasil saya mendapat beberapa masalah tapi jika saya jelaskan disini maka artikel ini akan terlalu panjang, Jadi saya berharap sobat untuk mempraktekkan dan menganalisa programnya, karena biasanya penjelasan yang didapat dari praktek akan lebih bermanfaat saat proses kodingnya nanti.
Itulah penjelasan login dengan cURL yang sangat sederhana sekali, dan disarankan jangan mudah percaya dengan penjelasan-penjelasan yang sebagian besar dari pendapat saya sendiri, untuk itu coba sobat baca lagi artikel-artikel yang membahas tentang cURL dari sumber-sumber yang berbeda, bertanya ke forum-forum terpercaya, lalu mempraktekkannya, agar pemahaman sobat menjadi semakin jelas. Sampai jumpa di artikel lainnya.
Thanks penjelasannya gan, tpi mungkin bisa di tambahkan video tutorialnya agar lebih di pahami thanks
BalasHapussaya masih bingung tentang cookie nya. yang "cookie-name.txt", apakah kita harus buat sebuah file yang bernama cookie-name.txt?
BalasHapussepertinya tidak perlu
HapusHehe Not Bad
BalasHapusMau nambahin penjelasan dikit. Kenapa css tidak bisa dimuat,karna web tsb menggunakan css local,yang artinya gabisa diakses selain di servernya sendiri.
BalasHapusGan, kalo data nya dari ajax, apa ada cara nya buat ngambil otomatis nya?
BalasHapus