Saturday, July 16, 2016

Kategori:

Tutorial Membuat Script Broadcast SMS via Import Excel

sms-gateway


Tutorial Membuat Script Broadcast SMS via Import Excel


PHP - Tutorial Membuat Script Broadcast SMS via Import Excel, SMS Gateway Gammu Enggine 

Sesuai janji saya sebelumnya, janji saya yang ada pada Tutorial PHP - SMS Gateway 5 : Membuat Script Broadcast SMS saya akan share caranya untuk membuat script untuk mengirim SMS broadcast massal berdasarkan nomor telp yang di import dari file microsoft excel. Dengan scrit ini tentunya kita dapat dimudahkan karena pengiriman sms bisa dengan mudahnya hanya melalui data yang ada pada microsoft excel.

Nanti kita akan membutuhkan contoh file excel yang nantinya akan diupload. Untuk Contoh data excelnya saya sertakan pada file download saya di bagian bawah artikel ini. OK sob langsung saja kita mulai pembuatannya.

Folder project


Pertama sobat semua buat folder project broadcast sms panjang ini yang digunakan untuk menyimpan beberapa script berikut ini. Misalkan folder "sms_excel".


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 = 'sms';

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


Function.php



Selanjutnya mari kita buat script function yang digunakan untuk mengirim sms ke group yang dipilih, berikut ini scriptnya silahkan copy dan kasih nama function.php.


<?php

function ngirimsms($nohp, $pesan, $modem)
{
 
 $pesan = str_replace("'", "\'", $pesan);
 
 if (strlen($pesan)<=160)
 { 
  $query = "INSERT INTO outbox (DestinationNumber, TextDecoded, SenderID, CreatorID) 
            VALUES ('$nohp', '$pesan', '$modem', 'Gammu')";
  $hasil = mysql_query($query);
 }
 else
 {
  $jmlSMS = ceil(strlen($pesan)/153);
  $pecah  = str_split($pesan, 153);
   
  $query = "SHOW TABLE STATUS LIKE 'outbox'";
  $hasil = mysql_query($query);
  $data  = mysql_fetch_array($hasil);
  $newID = $data['Auto_increment'];
 
  $random = rand(1, 255);
  $headerUDH = sprintf("%02s", strtoupper(dechex($random)));
 
  for ($i=1; $i<=$jmlSMS; $i++)
  {
  
   $udh = "050003".$headerUDH.sprintf("%02s", $jmlSMS).sprintf("%02s", $i);
   $msg = $pecah[$i-1];
   
   if ($i == 1) 
   { 
    $query = "INSERT INTO outbox (DestinationNumber, UDH, TextDecoded, ID, MultiPart, SenderID, CreatorID)
        VALUES ('$nohp', '$udh', '$msg', '$newID', 'true', '$modem', 'Gammu')";      
   }       
   else $query = "INSERT INTO outbox_multipart(UDH, TextDecoded, ID, SequencePosition)
         VALUES ('$udh', '$msg', '$newID', '$i')";       
   mysql_query($query);    
      
  }
   }
   
   return 'SMS sending...';
}

?>


Index.php


Selanjutnya kita buat script index.php, yaitu script yang digunakan untuk mngisi form inputan text dan upload data excelnya, jadi kita bisa import data excel ini pada form ini. Jadi siapkan data yang akan di import ya gan,



<?php
include "config.php";
include "function.php";
?>
 
<html>
 <head>
   <title>Tutorial Membuat Script Broadcast SMS via Import Excel</title>
 </head>
 <body>
   <h1>Tutorial Membuat Script Broadcast SMS via Import Excel</h1>
   
 <form method="post" enctype="multipart/form-data" action="index.php">
 
 Pilih file source<br>
 <input type="hidden" name="MAX_FILE_SIZE" value="20000000">
 <input name="userfile" type="file" size="50"><br><br>
 Masukkan template SMS<br>
 <textarea name="template" cols="50" rows="8"></textarea><br><br>
 <input type="submit" name="submit" value="Kirim SMS">
 </form>
 <?php
   
   if (isset($_POST['submit']))
   {
  require_once 'excel_reader2.php';

  $data = new Spreadsheet_Excel_Reader($_FILES['userfile']['tmp_name']);

  // baca jumlah total baris dan kolom file excel
  $baris = $data->rowcount($sheet_index=0);
  $kolom = $data->colcount($sheet_index=0);

  // proses pembacaan setiap baris data, mulai pada baris ke-2
  for ($i=2; $i<=$baris; $i++)
  {
   // string template SMS
   $string = $_POST['template'];
   
   // proses pattern matching, mencari bentuk [...] dalam template sms
   preg_match_all("|\[(.*)\]|U", $string, $hasil, PREG_PATTERN_ORDER);

   for($j=1; $j<=$kolom; $j++)
   {
    $value[strtoupper($data->val(1, $j))] = $data->val($i, $j);
    // membaca nomor hp dari kolom ke-1 file excel
    $nohp = $data->val($i, 1); 
   }
     
         // proses mengubah pattern [...] di template
   // menjadi value sesuai nama kolom di excel
   foreach($hasil[1] as $key => $nilai)
   {
    $string = str_replace('['.$nilai.']', '['.strtoupper($nilai).']', $string);
    $kapital = strtoupper($nilai);
    $string = str_replace('['.$kapital.']', $value[$kapital], $string);
   }
   
   // jika nomor hp tidak kosong, maka lakukan pengiriman sms
   if (is_string($nohp) && ($nohp != ''))
   {
    ngirimsms($nohp, $string, '');
   }  
  } 
  echo "<p>SMS dalam pengiriman</p>"; 
   }
 ?>
 </body>
</html>

Sekian tentang Tutorial Membuat Script Broadcast SMS via Import Excel, mudah bukan cara membuatnya, sekian postingan kali ini, semoga bermanfaat bagi sobat semua yang sedang belajar membuat sms gateway. Selanjutnya saya akan buat cara membuat scrit auto refresh.

Complete

Silahkan download source code complete dari Tutorial cara Membuat Script Broadcast SMS via Import Excel ini, berikut linknya.



Jangan lupa untuk kunjungi artikel lainnya, seperti membuat toko online, membuat sistem informasi penerimaan mahasiswa. dan Masih banyak lagi yang 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