About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Teknik Mengirim Data (POST Method) Dari Remote Server Dengan CURL
PHP

Teknik Mengirim Data (POST Method) Dari Remote Server Dengan CURL

Dalam artikel kali ini, saya akan mencoba memaparkan bagaimana teknik melakukan pengiriman data dengan POST method dari suatu server ke server lain menggunakan CURL di PHP.

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

extension=php_curl.dll

Jika ada tanda semicolon (titik koma) di depannya, maka hilangkanlah.

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();
?>

Kemudian jalankan script tersebut di browser. Jika dalam tampilan yang muncul di browser muncul informasi berikut ini

curl php

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);
?>

Kemudian di dalam server http://situsku.com, Anda harus membuat script bernama ‘kirim.php’ yang digunakan untuk membaca ketiga data tersebut dan memprosesnya.

kirim.php

<?php
$nilai1 = $_POST['data1'];  // membaca nilai data dari parameter data1
$nilai2 = $_POST['data2'];  // membaca nilai data dari parameter data2
 
.
.
.
?>

Nah… sekarang kita akan membuat contoh proses pengiriman 3 buah data dari localhost ke server melalui sebuah form. Selanjutnya di dalam server, ketiga data tersebut nantinya akan disimpan di dalam database.

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>

Kemudian kita buat script untuk membaca ketiga data yang diinputkan tersebut, lalu mengirimkannya ke server http://situsku.com dengan CURL.

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);

?>

Sebagai catatan, kedua script di atas diletakkan di localhost.

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)
);

Di sini diasumsikan menggunakan MySQL sebagai databasenya.

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);

?>

Mudah bukan implementasinya? Pada pembahasan di atas, contoh yang diambil adalah pengiriman data dari localhost (PC local) ke server hosting. Nah… Anda bisa mengembangkan ide di atas pada kasus pengiriman data antar server hosting. Sebagai contoh adalah sewaktu saya membahas tentang membuat buku tamu dengan akun facebook. Di situ, kasus pengiriman datanya adalah dari server hosting ke server hostingnya Facebook.

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…

 

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply