Saturday, July 30, 2016

Kategori:

Tutorial Cara Membuat Filter SMS Inbox, Filter Kata Pada Pesan Masuk

sms-gateway


Tutorial Cara Membuat Filter SMS Inbox, Filter Kata Pada Pesan Masuk


PHP - Tutorial Cara Membuat Filter SMS Inbox, Filter Kata Yang Masuk Pada Pesan Masuk, Belajar SMS Gateway Gammu Enggine.

Setelah sebelumnya membuat tutorial tentang Tutorial Cara Membuat Blokir SMS Masuk Dari Beberapa Nomor Tertentu, kali ini mari kita buat filter kata-kata atau bad words pada setiap pesan masuk yang ada pada tabel Inbox kita, dengan adanya fitur ini pasa aplikasi sms center atau sms gateway yang kita buat tentunya akan mempermudah keamanan pada sistem sms gateway yang kita buat. Berikut ini langkah - langkah cara membuat filter sms inbox, yang mana saya dapat ilmu ini dari referensi google dan ebook yang membahas tentang sms gateway yang ditulis kembali dengan gaya penulisan saya. Ok, mari kita mulai saja cara membuatnya.


Folder Project

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


Penambahan Database

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



CREATE TABLE `badwords` (
  `kata` varchar(100) NOT NULL DEFAULT '',
  PRIMARY KEY (`kata`)
)

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 filterbadwords dan class cek inbox, class filterbadwords ini suatu class yang berfungsi untuk memfilter dan delete sms yang masuk, yang mana kata tersebut terdaftar pada tabel badwords. 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 filterbadwords()
{
 $query = "SELECT * FROM inbox WHERE processed = 'false'";
 $hasil = mysql_query($query);
 while ($data = mysql_fetch_array($hasil))
 {
  $nohp = $data['SenderNumber'];
  $id = $data['ID'];
  $teks = strtoupper($data['TextDecoded']);
  
  // cek apakah suatu SMS mengandung 1 atau lebih badwords
  $query2 = "SELECT * FROM badwords";
  $hasil2 = mysql_query($query2);
  $status = 0;
  while ($data2 = mysql_fetch_array($hasil2))
  {
   // jika SMS mengandung badwords, maka status = 1
   if (substr_count($teks, strtoupper($data2['kata'])) > 0) $status = 1;
  }
  
  // jika status = 1, lakukan penghapusan
  if ($status == 1)
  {
   $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 menampilkal 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
filterbadwords();

// 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 Filter SMS Inbox, Filter Kata Yang Masuk Pada Pesan Masuk</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 Filter SMS Inbox, Filter Kata Yang Masuk Pada Pesan Masuk</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 Filter SMS Inbox, Filter Kata Yang Masuk Pada Pesan Masuk, 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