Sebagai contoh aplikasinya adalah berikut, misalkan Anda punya data di localhost (PC local). Selanjutnya Anda ingin mengirim suatu data tersebut ke server hosting. Padahal kita tahu bahwa hampir semua admin hosting menutup port untuk koneksi database nya jika diakses secara remote. Jika port tersebut dibuka, tentu transfer data dari localhost ke server hosting tidak menjadi masalah. Trus… bagaimana donk? Jangan khawatir karena masalah tsb masih bisa terselesaikan dengan CURL.
OK deh.. pakai CURL, trus implementasinya bagaimana?
Untunglah di PHP sudah tersedia modul untuk CURL ini, cuman secara default di beberapa paket program yang berisi Apache, MySQL dan PHP seperti misalnya AppServ, belum menyediakan modul CURL di dalam PHP nya. Dengan kata lain, Anda harus menambahkan modul CURL ini sendiri.
Bagaimana cara menambahkannya modul CURL di PHP? Berikut ini adalah cara menambahkan modul CURL di PHP yang berjalan di Windows.
Silakan buka file php.ini, kemudian carilah baris berikut ini
1.
extension=php_curl.dll
Selanjutnya, downloadlah file CURL library libeay32.dll dan ssleay32.dll. Anda dapat mendownload file libeay32.dll di
http://www.dll-files.com/dllindex/dll-files.shtml?libeay32
dan file ssleay32.dll di
http://www.dll-files.com/dllindex/dll-files.shtml?ssleay32
Setelah kedua file tersebut didownload, langkah selanjutnya adalah meletakkan kedua file library tersebut di direktori C:\Windows\System32. Kemudian restart komputer.
Nah… untuk mengecek apakah modul CURL sudah terinstal dengan baik atau belum di PHP Anda, silakan buat script berikut ini
<?php
phpinfo();
?>
maka CURL sudah terinstal di PHP Anda.
OK… sekarang pembahasan dilanjutkan dengan contoh penggunaan CURL untuk mengirim data ke server hosting.
Teknik ini pada prinsipnya hampir sama dengan mengirim data menggunakan GET method yaitu menggunakan URL. Sebagai contoh untuk mengirim dua buah data x dan y ke server yang beralamat di http://situsku.com, maka menggunakan URL http://situsku.com/kirim.php?data1=x&data2=y. Dalam hal ini script kirim.php berfungsi untuk membaca kedua data yang dikirim tersebut.
Secara umum, jika kita menggunakan CURL untuk mengirim beberapa data (x, y dan z) dengan POST method ke server ‘http://situsku.com’, perintahnya adalah sbb:
<?php
$url = "http://situsku.com/kirim.php";
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, "data1=x&data2=y&data3=z");
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
curl_setopt($curlHandle, CURLOPT_POST, 1);
curl_exec($curlHandle);
curl_close($curlHandle);
?>
kirim.php
<?php
$nilai1 = $_POST['data1']; // membaca nilai data dari parameter data1
$nilai2 = $_POST['data2']; // membaca nilai data dari parameter data2
.
.
.
?>
Pertama kita buat formnya terlebih dahulu
contoh.htm
<form method="post" action="proses.php">
Data ke-1 <input type="text" name="data1"><br>
Data ke-2 <input type="text" name="data2"><br>
Data ke-3 <input type="text" name="data3"><br>
<input type="submit" name="submit" value="Submit">
</form>
proses.php
<?php
// membaca data1, data2, dan data3 dari form
$nilai1 = $_POST['data1'];
$nilai2 = $_POST['data2'];
$nilai3 = $_POST['data3'];
// pengiriman ke situsku.com via CURL
$url = "http://situsku.com/kirim.php";
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, "data1=".$nilai1."&data2=".$nilai2."&data3=".$nilai3);
curl_setopt($curlHandle, CURLOPT_HEADER, 0);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlHandle, CURLOPT_TIMEOUT,30);
curl_setopt($curlHandle, CURLOPT_POST, 1);
curl_exec($curlHandle);
curl_close($curlHandle);
?>
Berikutnya, kita bekerja di server http://situsku.com. Pertama kita buat dahulu tabel database untuk menyimpan ketiga data tersebut. Misalkan seperti berikut
CREATE TABLE `contoh` ( `data1` varchar(50), `data2` varchar(50), `data3` varchar(50) );
OK, selanjutnya kita buat script untuk menangkap data yang dikirim via CURL tsb, lalu memasukkannya ke tabel ‘contoh’ tersebut. Script ini nanti diletakkan di dalam server http://situsku.com.
kirim.php
<?php
// koneksi ke mysql
mysql_connect('dbhost', 'dbuser', 'dbpass');
mysql_select_db('dbname');
// membaca ketiga data dari parameter CURL
$data1 = $_POST['data1'];
$data2 = $_POST['data2'];
$data3 = $_POST['data3'];
// query insert data ke mysql
$query = "INSERT INTO contoh (data1, data2, data3) VALUES ('$data1', '$data2', '$data3')";
mysql_query($query);
?>
Nah.. pada artikel berikutnya, masih seputar CURL, yaitu bagaimana cara memanfaatkan CURL untuk membaca respon suatu script/file dari suatu server. Hal ini merupakan cara alternatif selain menggunakan function
file_get_contents()
atau fopen()
yang saat ini banyak dinonaktifkan oleh admin hosting mengingat
pembacaan file secara remote menggunakan kedua function tersebut
dianggap beresiko terhadap keamanan sistem.Selamat mencoba…
Sumber : Dinkes & KB Kota Madiun