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&#8217;);
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&#8217;);
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&#8221;;
$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);

?>

25 responses to “Localhost server + Shared Webhosting + CUrl + PHP dan MYSQL = SMS Gateway

  1. starclick 10 April 2012 pukul 3:31 pm

    Terima kasih, tapi saya masih bingung nih Gan, dan masih gagal terus, apakah bisa bantu saya….

  2. wijayanto 3 Juli 2012 pukul 9:18 pm

    gan ini bisa buat sms gateway ya?
    misalnya database sms gateway ane taruh d hostingan,kn klo sms gateway kn modemnya di laptop ane tuh.
    kalo pake script ini bisa sinkronisasi ya?jadi kl database lcalhost update,di hostingan juga update?😮

  3. wijayanto 3 Juli 2012 pukul 9:26 pm

    it tinggal kopas n ganti namaDB doang kn gan??
    soalnya ane awam banget,,,hehehe

  4. re 4 Juli 2012 pukul 5:25 pm

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

    gan yg $url itu harus pake // ato gmn??
    soalnya ane masukin // mlah ijo urlnya jd ga kbaca😮
    mohon pencerahannya

  5. wijayanto 5 Juli 2012 pukul 8:51 pm

    gan ente domisili dimana?
    kalo di bandung ane mau tanya2 boleh😮

  6. wijayanto 13 Juli 2012 pukul 4:42 pm

    gan cek email ya🙂

  7. Vera Kristanti Purba 24 Juli 2012 pukul 7:45 pm

    numpang nanya donk, bner2 butuh bantuannya ini🙂.. utk yg WAP kira2 bisa konek gak ya?.. misalnya utk database di taruh di hostingan, tp modemnyakn diserver lokal.. ane bhas sistem transaksi online, klo customer udh slesai belanja, habis tu sms gateway ngirim sms detail pesanan pelanggan itu.. utk proses yg kyak gitu bisa dkoneksikan gak ya? mkasi sbelumnya

  8. Vera Kristanti Purba 24 Juli 2012 pukul 8:41 pm

    beneran??? asikkk hehe… ada tw caranya gak mas??😦
    help me plissssss

  9. soegi 12 Januari 2013 pukul 10:43 am

    File Mana Yang ditaruh di hosting, dan file mana yg harus di taruh di PC Lokal, Mohon Pencerahan
    $url = “http://insert.php”; –> kemudian 8221 itu angka buat apa

  10. fitriana istiqomah (@fitisq) 22 Juni 2015 pukul 1:16 pm

    Mas, kalo mau nanya nanya via email bisa kemana ya? terimakasih

  11. Syafira Az-zahra 22 Juli 2015 pukul 11:23 am

    mas, say mau tanya
    kalo pengaturan sms gateway di web hosting cpanel bagaimana ya mas?
    terimakasih. mohon penjelasannya🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

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

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: