Rolly Maulana Awangga :: Catatan Ngoprek IT

Pakar dan Awam sama saja, sama sama belajar

Localhost server + Shared Webhosting + CUrl + PHP dan MYSQL = SMS Gateway

Sebelumnya ucapkan terima kasih atas inspirasinya oleh pa ari dan pa bimo.

Saya kembangkan script nya untuk sinkronisasi antara database server local sms gateway dengan shared hosting.

Ada dua kelompok file file yang ditaruh di server lokal dan shared webhosting.

File di server lokal sms gateway

bacasms.php

<?php
// koneksi ke mysql di server localhost
mysql_connect(‘localhost’, ‘root’, ”);
// nama database Gammu yang ada di localhost
mysql_select_db(‘sms’);

// baca data XML dari server hosting yang digenerate oleh data.php
$dataxml = simplexml_load_file(‘http://data.php’);
foreach($dataxml->data as $data)
{
// baca field ID
$id = $data->id;
// baca nomor tujuan
$destination = $data->destination;
// baca isi sms
$sms = $data->sms;

// mengirim SMS via Gammu dengan insert data ke tabel outbox Gammu
$query = “INSERT INTO outbox (DestinationNumber, TextDecoded) VALUES (‘$destination’, ‘$sms’)”;
mysql_query($query);

// hapus data SMS di server hosting yang sudah terbaca berdasarkan ID
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, ‘http://voucher.passionit.co.id/smsmod/hapus.php’);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, ‘id=’.$id);
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);
}
?>

tulissms.php

<?php

//skrip untuk menghubungkan SMS Gateway lokal dengan hosting.. skrip ini dipasang untuk berhadapan dengan gammu.. Penggunaannya adalah:
//1. harus ada koneksi internet,
//2. database gammu

$url               =    “http://insert.php”;
$dbname            =    ‘sms’;
$dbuser            =    ‘root’;
$dbpass            =    ”;
$dbhost            =    ‘localhost’;

if(mysql_connect($dbhost,$dbuser,$dbpass)){
mysql_select_db($dbname);
}else{
echo ‘DB ne ra konek!!’;
}

//bukak sms satu persatu

$q        = “SELECT `SenderNumber`,`TextDecoded`,`UpdatedInDB`,`ID` FROM `inbox` WHERE `Processed`=’false’”;
$mq       = mysql_query($q);
$n        = mysql_query($q);

while($r=mysql_fetch_array($mq)){
echo $sms            = $r['TextDecoded'];
echo $nohp            = $r['SenderNumber'];
echo $time            = $r['UpdatedInDB'];
echo $id              = $r['ID'];

$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, “sms=”.$sms.”&nohp=”.$nohp.”&time=”.$time);
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);

$q2=”UPDATE `inbox` SET `Processed`=’true’ WHERE `ID`=’$id’”;
mysql_query($q2);

}

?>

dua file diatas bisa dijalankan menggunakan batch windows dengan memanggil program php.

File di shared web hosting

data.php

<?php
// koneksi ke mysql server hosting
mysql_connect(‘localhost’, ‘user’, ‘pass’);
mysql_select_db(‘db’);

// membuat header dokumen XML
header(‘Content-Type: text/xml’);
echo “<?xml version=’1.0′?>”;

// membuat root tag untuk data XML
echo “<outbox>”;

// query untuk membaca seluruh SMS yang ada di tabel outbox
$query = “SELECT * FROM outbox ORDER BY id”;
$hasil = mysql_query($query);
while ($data = mysql_fetch_array($hasil))
{
// representasi data sms
echo “<data>”;
echo “<id>”.$data['id'].”</id>”;
echo “<destination>”.$data['destinationNumber'].”</destination>”;
echo “<sms>”.$data['sms'].”</sms>”;
echo “</data>”;
}
echo “</outbox>”;
?>

 

hapus.php

<?php
// koneksi ke mysql di server hosting
mysql_connect(‘localhost’, ‘user’, ‘pass’);
mysql_select_db(‘db’);

// baca ID data yang akan dihapus yang dikirim via CURL dari localhost
$id = $_POST['id'];
// hapus data SMS berdasarkan ID
$query = “DELETE FROM outbox WHERE id = ‘$id’”;
mysql_query($query);

?>

insert.php

<?php
//konfigurasi

// koneksi ke mysql
if(mysql_connect($dbhost,$dbuser,$dbpass)){
mysql_select_db($dbname);
}else{
echo ‘DB ne ra konek!!’;
}

// membaca ketiga data dari parameter CURL

echo $sms = $_POST['sms'];
echo $time = $_POST['time'];
echo $nohp = $_POST['nohp'];

// query insert data ke mysql
$query=”INSERT INTO inbox (id,nohp,sms,time) VALUES (”,’$nohp’,'$sms’,'$time’)”;
//$query = “INSERT INTO contoh (data1, data2, data3) VALUES (‘$data1′, ‘$data2′, ‘$data3′)”;
mysql_query($query);

?>

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 139 pengikut lainnya.