Selasa, 25 Oktober 2011

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

Sebelumnya ucapkan terima kasih atas inspirasinya oleh 

Yang telah mengembangkan 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);

?>
Semoga bermanfaat untuk kita semua....

Tidak ada komentar:

Posting Komentar