Sunday, July 17, 2016

Kategori:

Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu

sms-gateway


Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu


Tutorial PHP : Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu, Tutorial SMS Gateway dengan Gammu Enggine, PHP dan Database MySQL.

Pada kesempatan yang baik ini saya akan share cara membuat Blokir SMS Masuk berdasarkan Nomor tertentu, cara kerjanya sistem akan cek satu persatu sms yang masuk lalu di cek nomornya apakah nomor dari pesan itu termasuk dalam daftar nomor yang di blokir atau tidak. Dengan adanya fitur ini tentunya sangat membantu kita dalam mengerjakan dan membuat sebuah aplikasi SMS Gateway, makan dari itu kali ini saya akan share ilmu yang saya dapatkan dari beberapa referensi google dan ebook tentang sms gateway dengan metode penulisan dan penyampaian sesuai dengan bahas saya, yaitu padat, singkat dan ada scriptnya. Langsung saja kita ikuti beberapa langkah dan silahkan copy satu persatu script yang saya kasih.

Sebelum sobat membaca artikel ini pastikan sudah membaca artikel Tutorial PHP - SMS Gateway 4 : Membuat Script Penerimaan SMS Panjang, karena tehnik penerimaannya ialah penerimaan sms panjang / long sms.


Folder Project

Buat folder project di htdocs sobat dengan nama misalnya "sms_block".


Penambahan Database

Pada kasus kali ini, modul yang kita buat membutuhkan sebuah table baru, tabel barunya kita namai dengan nama blocknumber, berikut ini scriptnya silahkan sobat copy dan jalankan pada Tab SQL phpMyadmin. 


CREATE TABLE `blocknumber` (
  `nohp` varchar(20) NOT NULL DEFAULT '',
  PRIMARY KEY (`nohp`)
)

Config.php

Selanjutnya buat script config.php ini berisikan koneksi yang ada pada database gammu enggine, pastikan nama database, username dan password yang ada sama dengan yang ada di phpMyadmin. Berikut ini scriptnya, silahkan copy dan pastekan di text editor notepadd++ atau sublime text sobat, lalu simpan dengan nama file config.php


<?php

// koneksi ke database

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'gammu';

mysql_connect($dbhost, $dbuser, $dbpass);
mysql_select_db($dbname);

Function.php

Pada script function.php ini terdapat dua class, yaitu class blocking dan class cek inbox, class booking ini suatu class yang berfungsi untuk mengeblok dan delete sms yang masuk, yang mana nomor dari pesan tersebut terdaftar pada tabel blocknumber. Sedangkan class cekinbox berfungi ialah pembacaan sms inbox, dan setelah selesai dibaca akan disimpan ke table sms_inbox. Berikut ini scriptnya silahkan sobat bisa copy dan save dengan nama function.php.



<?php

function blocking()
{
 $query = "SELECT * FROM inbox WHERE processed = 'false'";
 $hasil = mysql_query($query);
 while ($data = mysql_fetch_array($hasil))
 {
  $nohp = $data['SenderNumber'];
  $id = $data['ID'];
  $query2 = "SELECT * FROM blocknumber WHERE nohp = '$nohp'";
  $hasil2 = mysql_query($query2);
  if (mysql_num_rows($hasil2) > 0)
  {
   $query3 = "DELETE FROM inbox WHERE ID = '$id'";
   mysql_query($query3);
  }
 }
}

// proses pembacaan sms di inbox
// setelah dibaca, sms akan disimpan di tabel sms_inbox

function cekinbox()
{
 $query = "SELECT * FROM inbox WHERE (UDH = '' OR UDH LIKE '%01') AND processed = 'false'";
 $hasil = mysql_query($query);

 while ($data = mysql_fetch_array($hasil))
 {
  $sum = 0;
  $noTelp = $data['SenderNumber'];
  $idmodem = $data['RecipientID'];
   
  if ($data['UDH'] != '')
  {
        
   $chop = substr($data['UDH'], 0, 8);
   $n = (int) substr($data['UDH'], 8, 2);
   $text = "";
   for ($i=1; $i<=$n; $i++)
   {
    $udh = $chop.sprintf("%02s", $n).sprintf("%02s", $i);
    $query3 = "SELECT * FROM inbox WHERE udh = '$udh' AND SenderNumber = '$noTelp' AND processed = 'false'";
    $hasil3 = mysql_query($query3);
    if (mysql_num_rows($hasil3) > 0) $sum++;
   }
   
   if ($sum == $n)
   {
    for ($i=1; $i<=$n; $i++)
    {
     $udh = $chop.sprintf("%02s", $n).sprintf("%02s", $i);
     $query3 = "SELECT * FROM inbox WHERE udh = '$udh' AND SenderNumber = '$noTelp' AND processed = 'false'";
     $hasil3 = mysql_query($query3);
     $data3 = mysql_fetch_array($hasil3);
     $text .= $data3['TextDecoded'];
     $id = $data3['ID'];
     $query3 = "DELETE FROM inbox WHERE ID = '$id'";
     mysql_query($query3);
    }
  
    $notelp = $data['SenderNumber'];
    $time = $data['ReceivingDateTime'];
    $text = str_replace("'", "\'", $text); 

    $query2 = "INSERT INTO sms_inbox(pesan, nohp, waktu, modem) VALUES ('$text', '$notelp', '$time', '$idmodem')";
    mysql_query($query2);  
   }   
  }
  else 
  {
   $id = $data['ID'];
   $notelp = $data['SenderNumber'];
   $time = $data['ReceivingDateTime'];   
   $text = str_replace("'", "\'", $data['TextDecoded']);
   
   $query2 = "DELETE FROM inbox WHERE ID = '$id'";
   mysql_query($query2);
   
   $query2 = "INSERT INTO sms_inbox(pesan, nohp, waktu, modem) VALUES ('$text', '$notelp', '$time', '$idmodem')";
   mysql_query($query2);
 
  }

  
 }
}

?>

Run.php

Scipt ini ialah suatu script yang menjalankan class yang sudah kita buat di file function.php, serta menampilka data pesan yang masuk ke sms_inbox. Berikut ini scritpnya silahkan copy dan save dengan nama run.php


<?php

include 'config.php';
include 'function.php';

// proses penghapusan nomor spam spy tidak diproses
blocking();

// proses membaca inbox dan menyimpan ke tabel sms_inbox
cekinbox();

// tampilkan data inbox sesuai urutan waktu
$query = "SELECT * FROM sms_inbox ORDER BY waktu DESC";
$hasil = mysql_query($query);

echo "<table border='1'>";
echo "<tr><th>Pesan SMS</th><th>Pengirim</th><th>Waktu</th><th>Modem</th></tr>";  
while ($data = mysql_fetch_array($hasil))
{
 $nohp = $data['nohp'];
 $modem = $data['modem']; 
 $time = $data['waktu'];
 $text = $data['pesan'];
 echo "<tr><td>".$text."</td><td>".$nohp."</td><td>".$time."</td><td>".$modem."</td></tr>";
} 
echo "</table>";
?>

Index.php

Nah kita buat script index.php, script yang akan menampilkan data pesan masuk dan menjalankan secara otomatis file yang sudah kita buat, yaitu autorefresh pada run.php, nah langsung saja berikut ini scriptnya silahkan sobat bisa copy dan save dengan nama index.php.



<html>
 <head>
  <title>Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu</title>
  <script type="text/javascript">
   function ajaxrunning()
   {
    if (window.XMLHttpRequest)
    {
     xmlhttp=new XMLHttpRequest();
    }
    else
    {
     xmlhttp =new ActiveXObject("Microsoft.XMLHTTP");
    }
 
    xmlhttp.onreadystatechange=function()
    {
     if (xmlhttp.readyState==4 && xmlhttp.status==200)
     {
      document.getElementById("inbox").innerHTML = xmlhttp.responseText;
     }
    }
 
    xmlhttp.open("GET","run.php");
    xmlhttp.send();
    setTimeout("ajaxrunning()", 5000); 
   }
  </script>
 </head>
 <body onload="ajaxrunning()">
  <h1>Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu</h1>
  
  <div id="inbox"></div>
  
 </body>
</html>


Silahkan simpan ke 4 script diatas dalam satu folder project yang sudah sobat buat.

Sekian tentang ulasan Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu, semoga artikel kali ini dapat bermanfaat dan membantu sobat semua yang sedang belajar membuat sms gateway, terima kasih

Jangan lupa share dan like fanspage tobiweb id untuk mendapatkan informasi update lainnya.


Tobi Muhammad

Author & Editor

Tobi (Muhammad Tobi) adalah seorang Tukang Masak di perusahaan startup, suka sekali menulis dan mempelajari source code open source lisensi GNU di Github dll. Bisa pemrogramman web karena sering belajar dari contoh program yang ada di Github dll. Anak desa yang hanya lulusan Paket C.

0 comments:

Post a Comment

 

News Letters

Subscribe here to get our newsletter in your inbox, it is safe and EASY!

Tobi Web Indonesia