HTTP POST Menggunakan PHP CURL

typhun
2
Ada suatu kasus dimana : "pengguna" ingin data formulir permintaan informasi yang dikumpulkan dalam database. [kelihatan nya sih simpel]

Nah, rintangannya disini.
- informasi tidak akan disimpan pada database localhost
- perlu diingat, kan tidak mungkin kalau saya menyarankan sesuatu yang manual [kan repot buat sananya], masak saya mau nge-remote :D.


Kemungkinan solusi untuk memecahkan rintangan ini adalah bahwa:

1. "Pengguna" akan menyerahkan coding nya :).

2. Dalam pengolahan bentuk PHP, saya menggunakan cURL untuk melaksanakan transmisi POST ke script PHP pada server "pengguna".

3. Script nya akan melakukan query "MySQL INSERT" ke dalam database pribadi "pengguna".

Solusi ini lumayan, Berikut cara menjalankan POST menggunakan PHP CURL Library.

/ / variabel POST
 $ Url = 'http://contohdomain.com/get-post.php';
 $ Fields = array (
       'Lname' => urlencode ($ last_name),
       'Fname' => urlencode ($ first_name),
       'Title' => urlencode ($ title),
       'Perusahaan' => urlencode (lembaga $),
       'Usia' => urlencode ($ umur),
       'Email' => urlencode ($ email),
       'Telepon' => urlencode ($ telepon)
     );

 / /  data lokal untuk POST CURL
 foreach ($ bidang sebagai $ key => $ value) {.... $ fields_string = $ key '=' $ value '&';}
 rtrim ($ fields_string, '&');

 / / buka koneksi
 $ Ch = curl_init ();

 / / Set url, jumlah POST vars, POST Data
 curl_setopt ($ ch, CURLOPT_URL, $ url);
 curl_setopt ($ ch, CURLOPT_POST, count ($ field));
 curl_setopt ($ ch, CURLOPT_POSTFIELDS, $ fields_string);

 / / eksekusi post
 $ Result = curl_exec ($ ch);

 / / Tutup koneksi
 curl_close ($ ch);
.
Lumayan ribet kalau pakai script diatas, coba pakai ini.
contoh coding pemblokiran suatu kata dari database lokal yang di POST ke URL yang sedang online.

$alamat=$_POST['cari'];

function bacaHTML($url){
     // inisialisasi CURL
     $data = curl_init();
     // setting CURL
     curl_setopt($data, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($data, CURLOPT_URL, $url);
     // menjalankan CURL untuk membaca isi file
     $hasil = curl_exec($data);
     curl_close($data);
     return $hasil;
}

// misal url "text post"
$text = bacaHTML("http://www.goguides.org/search?q=$alamat");

$text = str_replace("href=","href=tampil.php?cari=",$text);
echo $text;

untuk tampil.php

$text = bacaHTML($alamat);
include "koneksi.php";
$sql=mysql_query("select * from kata_terlarang");
while($data=mysql_fetch_array($sql))
{
$pattern = $data['kata'];
 
//echo "Pattern = $pattern <br/><br/>";
$hasil = KMP($pattern,$text);
//echo "Jumlah string yang cocok = ".count($hasil)."<br/>";
$text = str_replace("$pattern","<font color='red'>$pattern</font>",$text);
$text = str_replace("href=","href=tampil.php?cari=",$text);

if (count($hasil)>0)
{
 $sql1=mysql_query("select * from kata_mirip where id_kata_terlarang='$data[id]'");
 while($data1=mysql_fetch_array($sql1))
 {
mysql_query("INSERT INTO `daniel_search_db`.`url_blocked` (
    `id` ,
    `url` ,
    `kontent`
    )
    VALUES (
    NULL , '\"$alamat\"', '-')");
 }  
echo "
 <script>
 window.alert('Maaf Situs ini Kami Block Karena mengandung kata = $pattern dan mengandung kata mirip $data1[kata_mirip]');
 window.location=('index.php');
 </script>
  ";
 
}
}
//echo "Text = ".$text."<br/>";
echo $text;

1. Untuk database nya cobalah buat sendiri dan dikira kira :)

2. Koneksinya ? buat sendiri juga, kan gampang.

3. untuk index.php nya cuma isikan "text field" biasa, POST action nya ke coding pertama dengan "nama" untuk variabel "cari".

Post a Comment

2Comments

Post a Comment