P. 1
Membuat Sendiri Kirim SMS Gratis via Web Dengan PHP Dan MySQL

Membuat Sendiri Kirim SMS Gratis via Web Dengan PHP Dan MySQL

|Views: 456|Likes:
Published by sudirmanpuja

More info:

Published by: sudirmanpuja on Aug 24, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

08/12/2014

pdf

text

original

Membuat Sendiri Kirim SMS Gratis Via Web dengan PHP dan MySQL

December 8th, 2010 | by rosihanari | Cetak Artikel Ini

Masih terkait dengan SMS gateway, dalam artikel kali ini saya akan mencoba memaparkan cara membuat sendiri aplikasi kirim SMS gratis via web. Permintaan untuk membuat artikel dengan topik ini sudah banyak masuk ke email saya maupun komentar dalam blog ini. Namun, mohon maaf baru kali ini saya bisa mewujudkannya. Untuk membuat fasilitas kirim SMS gratis via web, kita membutuhkan sebuah aplikasi gateway untuk mengirim SMS. Aplikasi sms gateway ini nanti kita install atau letakkan di pc yang ada di rumah kita beserta modem/hp yang tercolok pada PC tersebut sebagai alat untuk mengirim SMS. PC ini harus senantiasa terhubung ke internet untuk berkomunikasi dengan PC server yang ada di hosting. Sedangkan di dalam hosting, kita buat semacam script form untuk interface user yang ingin mengirim SMS. Untuk aplikasi sms gateway yang diinstall di PC rumah, Anda bisa menggunakan Gammu sebagai enginenya. Pertanyaan yang muncul kemudian adalah bagaimana cara mengkomunikasikan PC server yang ada di hosting dengan PC di rumah, atau dengan kata lain bagaimana mengirim data sms yang disubmit via hosting kemudian bisa sampai di PC rumah lalu mengirimkan sms tersebut via modem/hp? OK« konsep dasar atau ide dasar dalam pembuatannya adalah kita menggunakan semacam web service yang dibuat di server hosting untuk komunikasi antara PC rumah dan PC hosting. Web service ini nanti senantiasa akan diakses oleh PC rumah. Melalui web service inilah SMS akan dikirim dari PC hosting ke PC rumah. Lantas, apa bentuk output dari web service ini? Web service disajikan dalam bentuk XML yang isinya adalah bunyi SMS dan

Pastikan Anda bisa mengirim SMS menggunakan Gammu dan HP/modem yang tercolok di PC Anda. 06.php. 05. Langkah pertama. // baca nomor tujuan dan isi sms dari form 07. $sms = $_POST['sms']. // query insert data sms ke tabel 'outbox' .php view sourceprint? 01.php inilah nomor tujuan dan isi SMS akan disimpan dalam tabel temporary pada database server hosting. buatlah script form untuk mengirim SMS.No. 'dbpass'). 'dbuser'. $destNumber = $_POST['destination']. sekarang kita menuju implementasi cara pembuatannya.</form> Bila diperhatikan.<form method="post" action="kirim. OK. Misalkan kita beri nama tabel temporary tersebut adalah µoutbox¶. Nah. `destinationNumber` varchar(20). Data XML yang berisi bunyi sms dan nomor tujuan inilah yang nanti akan dibaca oleh PC rumah. PRIMARY KEY (`id`) 6. 4. dan µsms¶ untuk menyimpan isi SMS. Tujuan <input type="text" name="destination"> 3. mysql_select_db('dbname'). field µdestinationNumber¶ untuk menyimpan nomor tujuan SMS. 08. 3. mysql_connect('dbhost'.php nya kirim. Anda harus sudah menginstall Gammu sebagai tool SMS gateway nya.) Field µid¶ digunakan sebagai nomor unik penanda setiap SMS yang akan dikirim.Isi SMS<br><textarea name="sms"></textarea> 4. `sms` text. Kita bisa buat tabel µoutbox¶ ini dengan struktur sbb: view sourceprint? 1. Di dalam script kirim.CREATE TABLE `outbox` ( 2. 04.nomor tujuan SMS yang akan dikirim. 09.<?php 02.. 10. form kirim SMS di atas nantinya akan disubmit di script kirim. 5. `id` int(11) AUTO_INCREMENT. // koneksi ke mysql server hosting 03.php"> 2. kita buat script kirim. lalu mengirimkannya lewat SMS gateway (Gammu). Script form ini nanti diletakkan di server hosting sms.html view sourceprint? 1. Langkah kedua.

15.} 25. kita sudah selesai bekerja di level server hosting.header('Content -Type: text/xml'). TextDecoded. 13. nantinya kita akan membuat script untuk membaca data sms yang tersaji dalam bentuk XML yang digenerate melalui script µdata. kemudian kita masukkan ke dalam tabel µoutbox¶ bawaannya Gammu untuk dikirim melalui hp/modem. $query = "INSERT INTO outbox (DestinationNumber. 06.mysql_select_db('dbname').// membuat header dokumen XML 07. mysql_query($query). Mengapa hal ini dilakukan? ya dong. CreatorID) VAL UES ('$destNumber'.{ 18. Setelah data sms ini dibaca. Langkah berikutnya adalah membuat script di sisi PC rumah. echo "<sms>".mysql_connect('dbhost'.?> OK« ketiga file di atas (sms.echo "<outbox>". 14. 'Gammu')". '$sms'. 22. echo "<data>".// query untuk membaca seluruh SMS yang ada di tabel outbox 14. echo "</data>". 09.". 15. kita perlu juga menghapus setiap data sms di server hosting yang sudah dibaca. 05. 24.while ($data = mysql_fe tch_array($hasil)) 17.php) nanti diletakkan di dalam server hosting.php¶ data.// membuat root tag untuk data XML 11. kirim.html. 23.$data['destinationNumber']. echo "<destination>".$data['id']. bagaimana cara menghapus data secara otomatis di server hosting setelah data sms nya terbaca? ya« kita gunakan CURL. dan data. 12. . 10.0'?>". Misalkan kita beri nama script untuk mengenerate XML ini µdata.echo "</outbox>"."</id>".?> Setelah data sms yang dikirim tersimpan dalam tabel µoutbox¶.php view sourceprint? 01. Lantas. supaya tabel µoutbox¶ nya di server hosting tidak penuh.. 'dbpass'). echo "<id>". 12.echo "<?xml version='1. echo "SMS sudah dikirim. 26.$hasil = mysql_query($query). // representasi data sms 19. 13."</sms>".. langkah selanjutnya kita buat script web service untuk menyajikan data sms yang tersimpan dalam tabel µoutbox¶ tersebut ke dalam bentuk dokumen XML. 04. Di dalam PC rumah.<?php 02. 08. Oya.$query = "SELECT * FROM outbox ORDER BY id"."</destination>". 20.php.11. 21. 'dbuser'.// koneksi ke mysql server hosting 03. 16. Sampai langkah ini.php¶ yang ada di server hosting.$data['sms'].

TextDecoded) VALUES ('$destination'. Eh« kalo kita liat pada script bacasms.// nama database Gammu yang ada di localhost 05. $query = "INSERT INTO outbox (DestinationNumber.mysql_connect('dbhost'.php view sourceprint? 01.php 08. pada proses penghapusan data SMS yang ada di server hosting melalui CURL terdapat pemanggilan script hapus. CURLOPT_POSTFIELDS.// koneksi ke mysql di server localhost 03. 17.mysql_select_db('dbname'). 25. // hapus data SMS di server hosting yang sudah terbaca berdasarkan ID 23. ' http://namasitus/hapus. 24. 21. mysql_query($query). 29.php ini nanti berfungsi untuk menghapus data sms yang ada di tabel outbox dalam database server hosting berdasarkan ID nya setelah data sms tersebut di baca oleh script bacasms. curl_setopt($curlHandle.php view sourceprint? 01.php di atas. 22.foreach($dataxml ->data as $data) 10. CURLOPT_URL.php.{ 11.// koneksi ke mysql di server hosting 03. 20. 09. curl_setopt($curlHandle.OK« ini dia script untuk membaca data sms dari XML nya. curl_close($curlHandle). // mengirim SMS via Gammu dengan insert dat a ke tabel outbox Gammu 19. 1). Nah« script ini belum kita buat di server hosting. CURLOPT_HEADER.php. '$sms')".$id). 13. curl_setopt($curlHandle. $destination = $data->destination. maka lakukan setting CURL terlebih dahulu. . 28.?> Jika web server di PC localhost belum mendukung CURL.php '). $sms = $data->sms. 0). bacasms.$dataxml = simplexml_load_file(' http://namasitus/data. hapus.} 33. $id = $data->id. 04.<?php 02. 30. CURLOPT_POST. CURLOPT_RETURNTRANSFER. 18. // baca field ID 12. 07. Script hapus.php '). $curlHandle = curl_init(). 'dbuser'. 27. // baca nomor tujuan 14. curl_exec($curlHandle). 04. 1). 32.30).<?php 02.// baca data XML dari server hosting yang digenerate oleh data.mysql_connect('dbhost'. 'dbuser'. 'dbpass'). 06. CURLOPT_TIMEOUT. 26. curl_setopt($curlHandle. 'id='. 15.mysql_select_db('dbname'). curl_setopt($curlHandle. 'dbpass'). 31. // baca isi sms 16. curl_setopt($curlHandle.

<script type="text/javascript"> 05.<title>SMS Serve r Running. setTimeout("ajax()".</title> 04. } 21. } 22. 16. 14.. xmlhttp=new XMLHttpRequest()..</script> 28.php di atas harus ditaruh di server hosting lho ya« !!! Selanjutnya script bacasms. { 20.<head> 03. if (xmlhttp. xmlhttp =new ActiveXObject("Microsoft.} 27. 10. 12.?> Sekali lagi script hapus.open("GET". 25. xmlhttp."bacasms.. } 15.php"). if (window. 10.amp.05.</body> . } 11. else 12.&amp. { 13. namun tentu hal ini membuat report kan? Nah« salah satu solusi dari hal ini adalah Anda bisa menjalankan autorefresh melalui AJAX yang secara otomatis merefresh script bacasms. xmlhttp.XMLHTTP"). xmlhttp.XMLHttpRequest) 08. { 09.readyState==4 &amp.php view sourceprint? 01.</h1> 32.// hapus data SMS berdasarkan ID 09. 08.amp.// baca ID data yang akan dihapus yang dikirim via CURL dari localhost 07.amp.<h1>SMS Server Running.status==200) 19.php ini pada setiap selang n detik. { 18. xmlhttp. 5000). 24. Lalu bagaimana supaya script bacasms.{ 07. 06.onreadystatechange=function() 17.<html> 02.php ini bisa secara otomatis berjalan dan selalu bisa membaca data dari server hosting? Sebenarnya Anda bisa mengklik tombol REFRESH pada web browser supaya script ini bekerja.</head> 30.php ini harus senantiasa kita jalankan melalui web browser localhost di PC rumah kita supaya bisa selalu membaca data sms yang ada di hosting lalu mengirimnya via Gammu.mysql_query($query).amp.send(). 29.$id = $_POST['id']. 26. 23. 11..$query = "DELETE FROM outbox WHERE id = '$id'".function ajax() 06. Ini dia script nya« index.<body onload="ajax()"> 31.

Anda dapat belajar teknik-teknik lain kaitannya dengan SMS gateway yang mengintegrasikan server hosting dengan pc rumah dengan contoh-contoh script SMS gateway yang saya buat untuk belajar.. Nah. 2009 | by rosihanari | Cetak Artikel Ini Setelah sekian lama tidak update blog. apalagi saat ini pulsa sms sangat murah Bisa pula tambahkan string pada setiap SMS yang dikirimkan dengan nama situs Anda untuk lebih memperkuat branding web Anda. Oya« meskipun namanya SMS gratis. namun tidak gratis bagi si pemilik web karena harus menyisihkan sedikit biaya untuk bayar pulsa. Dengan demikian yang perlu Anda jalankan di localhost hanyalah script index. Istilah Gratis hanya bagi si pengguna atau pengirim SMS melalui web Anda. anggap saja itu biaya marketing untuk lebih mengenalkan web Anda.php di atas diset supaya bisa merefresh secara otomatis bacasms.</html> Contoh script AJAX yang ada di index. Maaf ya rekans« . tapi tidak sepenuhnya gratis.php dalam interval 5 detik (5000 ms). Tapi tak apalah. Dalam postingan kali ini saya akan berbagi ilmu tentang bagaimana cara membuat script auto reply SMS Gateway dengan PHP dan MySQL.php di atas melalui browser. Topik ini sebenarnya sudah lama dinantikan oleh beberapa rekan namun baru sempat kali ini saya mewujudkannya. kangen rasanya untuk berbagi kembali pada pengunjung setia blog ini. Untuk hal ini silakan utak-atik sendiri ya Simpel bukan idenya??? Selamat mencoba« Script Auto Reply SMS Gateway dengan PHP December 1st.33. atau tanpa menggunakan VPS maupun dedicated server untuk tipe hostingnya yang juga sangat mahal biayanya. konsep di atas memungkinkan kita untuk bisa membangun aplikasi SMS gateway yang terintegrasi antara PC di server hosting dengan PC di rumah tanpa menggunakan IP public yang urusan untuk mendapatkannya sangat ribet dan mahal biayanya.

Nah« Bila ditemukan record SMS yang bernilai µfalse¶ ini maka kita bisa proses dengan menggunakan script tertentu. view sourceprint? 1. terlebih dahulu kita harus mengetahui ide pembuatan script auto reply SMS dengan Gammu ini. Anda harus membuat parsing terlebih dahulu. 2.INSERT INTO `nilaikalkulus` VALUES ('M0197003'. `nim` varchar(10). 3. Proses auto refresh ini bertujuan untuk mengecek ada tidaknya SMS baru yang masuk sekaligus memprosesnya. Namun jika tidak sesuai. view sourceprint? 1. Bila Anda menggunakan script PHP. '79'). Selang beberapa waktu si mahasiswa tadi akan mendapat SMS balasan berisi nilai matakuliah Kalkulus yang diperolehnya secara otomatis.. Adapun skenarionya adalah sbb: andaikan kita telah memiliki data nilai matakuliah Kalkulus mahasiswa. si mahasiswa tinggal mengirim pesan melalui SMS dengan format µNILAI<spasi>NIM µ dan dikirim ke nomor HP tertentu. maka secara default nilai pada field ini adalah µfalseµ. bagaimana cara membedakan mana SMS yang telah diproses dan yang belum diproses (baru saja masuk)? Jawabannya adalah terletak pada field yang bernama µProcessedµ. Oya. '86').INSERT INTO `nilaikalkulus` VALUES ('M0197001'. kita buat script PHP untuk pemrosesannya. PRIMARY KEY (`nim`) 5. pastikan bahwa keyword dari perintah SMS yang dikirimkan adalah sesuai dengan format. '80'). `nilai` int(11). Jika format perintah benar maka SMS akan diproses untuk mengirimkan nilainya. . Tentu kita sudah ketahui bersama bahwa setiap kali SMS yang diterima oleh Gammu.CREATE TABLE `nilaikalkulus` ( 2.OK deh« masih dengan menggunakan Gammu kita akan membuat contoh studi kasus yaitu tentang nilai mahasiswa. Oya. Nah« untuk melihat nilainya. 4.INSERT INTO `nilaikalkulus` VALUES ('M0197002'. maka SMS tersebut akan masuk ke dalam tabel µINBOXµ yang ada di database MySQL. OK« now back to the case« pertama kita siapkan dahulu data nilai Kalkulus mahasiswa beserta tabelnya. Hal terpenting« jangan lupa mengubah status µprocessed¶ menjadi µtrue¶ pada setiap SMS yang telah diproses di dalam tabel INBOX nya. Lantas. 3. Untuk memastikan bahwa keyword dari perintah itu benar. maka tetap diproses dengan mengirimkan pesan kesalahan dalam bentuk SMS pula. untuk tabel di atas Anda bisa buat pada satu database yang sama dengan tabel-tabel bawaannya Gammu atau bisa juga berbeda.. Begitu ada SMS masuk. OK paham ya skenarionya? Sebelum kita bahas lebih lanjut mengenai pembuatan scriptnya. Anda dapat menggunakan script PHP atau script apapun untuk memproses data SMS yang masuk ke dalam INBOX ini. Selanjutnya. Proses di atas ini harus dilakukan setiap saat. mungkin Anda bertanya. Kemudian setelah data SMS tersebut diproses kita harus segera mengubah nilainya menjadi µtrueµ untuk membedakan mana SMS yang telah diproses dengan yang belum. maka Anda perlu membuat script auto refresh yang secara otomatis berjalan pada selang interval waktu tertentu.).

31. 42. $nim = $pecah[1]. 09. ini dia scriptnya untuk membuat auto reply. $id = $data['ID']. 38. "dbpass"). 32. // membaca no pengirim 16. $query3 = "INSERT INTO outbox(DestinationNumber. 51. $pecah = explode(" ". $data2 = mysql_fetch_array($hasil2). // bila nilai ditemukan 41. 26. 07. $query2 = "SELECT nilai FROM nilaikalkulus WHERE nim = '$nim'".$query = "SELECT * FROM inbox WHERE Processed = 'false'".Nah. $msg = strtoupper($data['TextDecoded']). 18. 43. view sourceprint? 01. $noPengirim = $data['SenderNumber']. 48. 20. 35. $hasil2 = mysql_query($query2). 50. else 39.. // membaca ID SMS 13. 06. { 40. else $reply = "Maaf perintah salah". // cari nilai kalkulu s berdasar NIM 33. 25. 15. $msg). 34. 17. "dbuser".//koneksi ke mysql dan db nya 04.while ($data = mysql_fetch_array($hasil)) 11. // cek bila data nilai tidak ditemukan 37. { 29. // jika kata terdepan dari SMS adalah 'NILAI' maka cari nilai Kalkulus 27. 14. } 46. 05. TextDecoded.{ 12. . // membaca pesan SMS dan mengubahnya menjadi kapital 19.<?php 02. if ($pecah[0] == "NILAI") 28.mysql_select_db("dbname") .$hasil = mysql_query($query). 'Gammu')". 44. $nilai = $data2['nilai']. // membuat SMS balasan 49. // proses parsing 22. 10. $reply = "Nilai Kalkulus Anda: ". 03.// query untuk membaca SMS yang belum diproses 08. $hasil3 = mysql_query($query3). 21. 36. CreatorID) VALUES ('$noPengirim'. // baca NIM dari pesan SMS 30.$nilai. 23. '$reply'. 52.mysql_connect("dbhost". // memecah pesan berdasarkan karakter <spasi> 24. lengkap saya sertakan penjelasannya dalam bentuk komentar. if (mysql_num_rows($hasil2) == 0) $reply = "NIM tidak ditemukan". } 45. 47.

$query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'".. 25.php view sourceprint? 01. maka setiap SMS yang masuk kita buat kapital semua saja.<html> 02. sms. 07.$hasil = mysql_query($quer y). karena string µNILAI¶ dengan µnilai¶ itu berbeda sehingga bila ditulis huruf kecil semua nantinya bisa dianggap perintah salah. Anda dapat mempelajari kembali teknik ini serta menggunakan teknik lain dengan membaca artikel saya tentang µTeknik Dasar Mengirim SMS dengan Gammuµ. "dbuser".//koneksi ke mysql dan db nya 14..<!-.53.<head> 03.. Bila tidak seragam. . Anda harus buat auto refresh dalam selang beberapa detik. // ubah nilai 'processed' menjadi 'true' untuk se tiap SMS yang telah diproses 54. 19. saya menggunakan teknik insert data pada tabel OUTBOX dengan query SQL. ?>"> 05.</head> 06.mysql_connect("dbhost".<h1>SMS server running. 11. 56..$query = "SELECT * FROM inbox WHERE Processed = 'false'". 20. Selanjutnya supaya script di atas berjalan secara otomatis mengecek SMS yang masuk.</h1> 10. "dbpass"). $hasil3 = mysql_query($query3). Nah. Ya« hal ini perlu karena supaya ada keseragaman bentuk pesan.mysql_select_db("dbname").// query untuk membaca SMS yang belum diproses 18.<meta http -equiv="refresh" content="30. 17.{ 22. 09. supaya seragam.<?php 12. // membaca ID SMS 23. url=<?php $_SERVER['PHP_SELF'].} 58.refresh script setiap 30 detik --> 04. 13.?> Oya« mungkin Anda bertanya. maka sulit dalam proses memparsingnya. $id = $data['ID']. Keterangan: Cara pengiriman pesan balasan pada script di atas. Karena terkadang SMS dikirim dengan huruf kapital semua. 24. mengapa untuk proses parsing di atas pesan SMS nya perlu dibuat huruf kapital dengan strtoupper(). 57. 16.<body> 08. kecil semua atau campuran. $noPengirim = $data['SenderNumber']. // membaca no pengirim 26. 15.while ($data = mysql_fetch_array($hasil)) 21. 55.

53. // membuat SMS balasan 59. $reply = "Nilai Kalkulus Anda: ". else $reply = "Maaf perintah salah". // cek bila data nilai tidak ditemukan 47.27. 54. $nim = $pecah[1]. else 49. $query2 = "SELECT nilai FROM nilaikalkulus WHERE nim = '$nim'". Anda dapat pula menggunakan TRIGGER di MySQL nya. // ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses 64. $hasil2 = mysql_query($query2). if ($pecah[0] == "NILAI") 38. 67. 66. // jika kata terdepan dari SMS adalah 'NILAI' maka cari nilai Kalkulus 37. $nilai = $data2['nilai'].?> 69. // bila nilai ditemukan 51. 46. } 55. $msg = strtoupper($data['TextDecoded']). 62. { 50. 44. 36. 57. 33. 63. . mungkin agak repot. 35. bagi yang belum terbiasa membuatnya seperti saya. 42. 41. Script di atas sudah diuji coba dan berjalan dengan lancar di modem Wavecom Fastrack. $hasil3 = mysql_query($query3). apalagi bila panjang text auto reply nya di atas 160 karakter. 45. // baca NIM dari pesan SMS 40. // membaca pesan SMS dan mengubahnya menjadi kapital 29.</html> Sebenarnya untuk memproses SMS dan memberikan auto reply. '$reply')".} 68. // memecah pesan berdasarkan karakter <spasi> 34.. $hasil3 = mysql_query($query3). 48.$nilai. $pecah = explode(" ". // cari nilai kalkulus berdasar NIM 43. $query3 = "INSERT INTO outbox(DestinationNumber. $msg). 30. 28.</body> 71. 52. // proses parsing 32. Namun. } 56. $query3 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'". $data2 = mysql_fetch_array($hasil2). selain dengan auto script menggunakan auto refresh seperti di atas. 31. if (mysql_num_rows($hasil2) == 0) $reply = "NIM tidak ditemukan". 65. { 39. 70. 60. 58. 61. TextDecoded) VALUES ('$noPengirim'.

. yang Anda butuhkan adalah PC server yang di dalamnya . bisa ratusan atau ribuan yang tersimpan di database SMS center. Nah« jika Anda ingin mengirim pesan SMS ke semua nomor tersebut. Anda tinggal kirim SMS ke SMS center yang Anda buat sendiri dengan format pesan misalnya: FWD#PESAN maka otomatis pesan akan diteruskan oleh SMS center ke semua nomor hp yang ada di database. Membuat Script SMS Auto Forward dengan PHP July 17th. bagaimana cara membuatnya? Untuk membuat SMS auto forwarding ini. saya akan mencoba memaparkan cara membuat script SMS Gateway yang dapat digunakan untuk melakukan auto forwarding SMS dengan script PHP. dan silakan berkreasi sendiri ya« Anda dapat menambahkan keyword lain atau format SMS lain yang lebih dari satu. Kalau sudah paham apa itu SMS Auto Forwarding. Apa sih auto forwarding SMS itu?? Misalkan Anda memiliki sejumlah nomor hp teman atau member yang jumlahnya banyak sekali. selamat mencobanya.OK deh. semoga pengunjung setia blog ini gak berpindah ke lain blog OK deh« pada artikel SMS gateway kali ini.. 2010 | by rosihanari | Cetak Artikel Ini Maaf ya. lama saya gak update lagi nih blog.

06.// koneksi ke databa se gammu 04. 05. Tabel ini merupakan singkatan dari µphonebook¶ yang nantinya digunakan untuk menyimpan data nomor hp yang nantinya bisa dikirimi pesan SMS auto forwarding ini. kita bisa menggunakan function explode() di PHP. Bila diawali dengan keyword FWD maka barulah proses forwarding ini dilakukan. Anda bisa menggunakan teknik auto refresh pada browser atau menggunakan teknik AJAX. "dbpass"). untuk keperluan sms gateway ini Anda juga harus punya modem untuk pengiriman sms nya. Oya sampai lupa. terdapat sebuah tabel bernama µpbk¶. Silakan isi beberapa data nomor hp beserta nama pemiliknya. Tanda # digunakan untuk memisahkan keyword dengan pesan yang akan dikirim. Berikut ini adalah script PHP untuk SMS autoforwarding ini. run.sudah terinstal Gammu sebagai gateway untuk SMS nya. Adapun langkah pertama yang Anda harus lakukan untuk membuat sms auto forwarding ini adalah instalasi Gammu nya. 03. Anda akan mendapatkan beberapa buah tabel di database mysql seperti pada gambar berikut ini (gunakan phpmyadmin) Di antara beberapa tabel di atas. maka PESAN akan dikirim ke semua nomor hp yang ada di tabel µpbk¶. Di dalam AppServ ini sudah terdapat Apache sebagai webserver. web server (saya sarankan menggunakan AppServ).mysql_select_db("dbname"). Untuk memecah string dari SMS. Selanjutnya kita buat script PHP untuk memproses SMS auto forwarding ini. "dbuser". PHP server dan juga mysql.mysql_connect("dbhost". Ide pembuatan script PHP untuk memproses SMS auto forwarding ini kita harus memecah keyword FWD#PESAN terlebih dahulu. Script PHP ini nanti harus senantiasa berjalan di browser.<?php 02. Setelah instalasi Gammu.php view sourceprint? 01. . Selanjutnya bila keywordnya benar-benar diawali dengan FWD.

// cek keywordnya apakah sama dengan 'FWD'? 21. mysql_query($query3). 09. $hasil2 = mysql_query($query2). // proses pengiriman pesan ke setiap no hp 35. 10. $id = $data['ID']. Oleh karena itu saya buat menjadi besar semua (kapital). 37. 14. Kapitalisasi huruf pada keyword ini penting karena di PHP penulisan huruf kecil dan besar pada suatu string itu berbeda (case sensitive). '$pesan'.07. 'Gammu')". // jika keywordnya FWD maka lakukan proses forwarding 24. 25. TextDecoded.$hasil = mysql_query($query). $pesan = $pecah[1]. 17.while ($data = mysql_fetch_array($hasil)) 11. $query2 = "UPDATE inbox SET Processed = 'true' WHERE ID = '$id'". $query3 = "INSERT INTO outbox (DestinationNumber. Anda musti merefresh script di atas pada browser terus menerus supaya bisa memproses SMS yang masuk. } 38. // membaca nomor hp 31. 28. // memecah isi sms berdasarkan karakter # 18. Namun hal ini tentu tidak mungkin bukan? So« kita harus membuat sistem otomatisasi supaya script di atas bisa melakukan refresh sendiri. $query2 = "SELECT * FROM pbk". 45. 20. 42. mengapa di pengecekan keywordnya saya menggunakan strtoupper() ? ya« hal ini dikarenakan cara penulisan sms bisa berbeda-beda pada besar kecilnya huruf. $pecah = explode("#". mysql_query($query2). // membaca id sms 13. 27.} 44. { 30. Anda bisa menggunakan teknik auto refresh atau menggunakan AJAX.// membaca sms yang masuk dan belum diproses 08. Sebagai contoh penulisan µFWD¶ dengan µFwd¶ atau µfwd¶ atau µfwD¶ semuanya berbeda.$query = "SELECT * FROM inbox WHERE Processed = 'false'".?> Keterangan: Mungkin Anda bertanya-tanya. while ($data2 = mysql_fetch_array($hasil2)) 29. Nah« selanjutnya script di atas harus dijalankan terus menerus di web server. CreatorID) VALUES ('$nohp'. 32. 19. 34. // membaca data phonebook dari tabel 'pbk' 26. 40. Namun kapitalisasi huruf ini hanya saya berikan pada keywordnya saja. } 39. Jika secara manual. // membaca isi pesan yang akan diforward 33.{ 12. 16. $sms). $nohp = $data2['Number']. $sms = $data['TextDecoded']. { 23. 43. 36. // membaca isi sms 15. if (strtoupper($pecah[0]) == "FWD") 22. // menandai sms telah diproses 41. . sedangkan untuk pesan yang akan diforward tidak perlu.

<head> 03. xmlhttp. setTimeout("ajax()".</body> 28.</h1> 27. 15. { 08. 18.html yang di dalamnya kita sisipkan script AJAX untuk menjalankan script run.0. } 21.<body onload="ajax()"> 26.XMLHTTP"). Mudah bukan membuatnya? script di atas dijalankan dengan sukses di Gammu 1. 19. } 12.php").. 11. . 17. } 16. xmlhttp. xmlhttp=new XMLHttpRequest(). Lantas« dari kedua script di atas manakah yang nantinya akan dijalankan di browser? Anda cukup menjalankan index. function ajax() 07.open("GET".php. if (window.send(). { 14.<html> 02. <script type="text/javascript"> 05.25. xmlhttp =new ActiveXObject("Microsoft.XMLHttpRequest) 09. 06.</html> Script AJAX di atas secara otomatis akan melakukan refresh script run.php setiap selang 5 detik (5000 milisekon).. { 10. <title>SMS Auto Forwarding</title> 04.html nya saja.Untuk kali ini kita mencoba menggunakan AJAX untuk menjalankan script run. 23.</head> 24. <h1>SMS Auto Forwarding running."run. 25.html view sourceprint? 01. 20. menggunakan modem Wavecom dan dengan browser Firefox. index. Oleh karena itu perlu kita buat script index. 5000).php di atas secara otomatis. else 13. </script> 22.

Untuk mengetahui cara instalasi Gammu dan bagaimana cara mengintegrasikannya dengan MySQL silakan baca artikel cara setting Gammu. Untuk tabel µkirim¶ cukup memiliki field nomor HP dan tanggal kirim SMS saja. bhw yang mengirim SMS ucapan ultah adalah program komputer ya OK.. 2010 | by rosihanari | Cetak Artikel Ini Seperti yang pernah saya janjikan dahulu. kita buat 2 buah tabel. untuk membuat SMS ucapan ulang tahun otomatis ini kita memerlukan Gammu sebagai SMS daemonnya. karena kita akan membuatnya menggunakan PHP + MySQL. HP tentu saja dan sebuah komputer yang senantiasa ON terus. Tabel pertama untuk menyimpan data teman Anda. Mengapa haris ON terus komputernya? ya. Tabel ini kita namai µfriends¶. saya akan mencoba memposting artikel tentang aplikasi SMS gateway untuk membuat SMS ucapan ulang tahun secara otomatis dalam blog ini. Tapi jangan bilang ke temen Anda. doesn¶t it? Oya. Tabel ini berfungsi sebagai pencegah pengiriman SMS ucapan secara berulang. Kemudian tabel kedua untuk menyimpan data SMS ucapan ultah yang telah terkirim ke teman Anda.Membuat SMS Gateway Ucapan Ulang Tahun Otomatis dengan PHP + MySQL February 19th. nomor HP dan tanggal lahirnya saja. Oleh teman Anda. Jika Anda punya banyak teman dan Anda memiliki data tanggal lahir semua teman Anda. Data apa saja yang disimpan? cukup nama. It makes sense. Anda akan dianggap sebagai teman yang sangat perhatian. kalo pas ada temen Anda yang ulang tahun namun kebetulan komputer Anda lagi mati. Tabel ini kita namai µkirim¶. Trus« untuk tabel datanya. apa saja yang dibutuhkan? Untuk keperluan ini. maka mudah-mudahan script yang dibahas dalam artikel ini akan bermanfaat. satu lagi Anda perlu XAMPP atau AppServ untuk menjalankan programnya. ya« SMS nya gak bisa terkirim. karena setiap kali sang teman berulang tahun maka SMS ucapan ultah selalu terkirim ke dia tepat waktu tanpa meleset 1 hari pun. karena script yang kita buat ini nanti menggunakan Auto Refresh atau dengan kata lain script ini berjalan secara otomatis pada selang waktu . 1 jam bahkan 1 menit pun (kalo waktu di komputer Anda sama dengan waktu di rumah teman Anda « he 3x).

Kedua tabel di atas nantinya dibuat di dalam database yang sama dengan tabel-tabel bawaan dari Gammu. Untuk tahun lahirnya tidak usah diperhatikan saja.INSERT INTO `friends` VALUES ('08120101010'. Proses selanjutnya adalah jangan langsung mengirim SMS ucapannya.tertentu. '1980 -09-07'). '1986 -03-10'). Oleh karena itu untuk tabel kedua ini.CREATE TABLE `kirim` ( 2. `tglLahir` date. kita baca nomor HP dan namanya.<h1>SMS Ulang Tahun Running. PRIMARY KEY (`noHP`. <meta http -equiv="refresh" content="10.. mengingat kedua field tersebut adalah primary key. ?>"> 06.<html> 02.CREATE TABLE `friends` ( 2. `noHP` varchar(30). namun kita simpan data nomor HP dan current date nya ke tabel µkirim¶. 'C'. field nomor HP dan tanggal kirim SMS kita buat sebagai primary key. Nah.</head> 07. <!-. Tanpa adanya tabel kedua ini. 3. Namun jika gagal. 3. <title>SMS Ulang Tahun</title> 04. SENTITEMS dsb« Kemudian bagaimana ide dari script SMS ucapan ulang tahun ini. `nama` varchar(100). Kemudian bila ada data teman yang tanggal dan bulan lahirnya sesuai dengan current date. Dengan demikian pasti ada jaminan bahwa SMS ucapan yang terkirim ke teman Anda tidak dilakukan berulang kali pada hari yang sama.<body> 08. untuk kedua tabel di atas. 5. Jika proses insert atau simpan data ke tabel µkirim¶ ini berhasil barulah kita kirim SMS ucapannya ke tabel µOUTBOX¶ yang sudah disediakan oleh Gammu.). OUTBOX.. 'A'. berikut ini struktur tabel dan contoh datanya view sourceprint? 1.INSERT INTO `friends` VALUES ('08562810000'.refresh script setiap 10 detik --> 05. Lantas bagaimana bila ulang tahunnya pada tahun depan? ya tidak ada masalah. view sourceprint? 1. view sourceprint? 1. maka proses pengiriman SMS ucapan ultah bisa dilakukan beberapa kali. Proses insert data ke tabel µkirim¶ ini gagal jika terdapat data nomor HP dan tanggal kirim yang sama. 4.INSERT INTO `friends` VALUES ('08881111111'. PRIMARY KEY (`noHP`) 6. `noHP` varchar(30). Idenya adalah pertama kali kita cari dulu data teman yang ada di tabel µfriends¶ yang tanggal lahir dan bulan lahirnya sama dengan saat ini (current date).<head> 03. 'B'. berikut ini implementasi script PHP nya: view sourceprint? 01.</h1> . `tglKirim` date.. kan current date nya sudah berbeda? sehingga proses insert data ke tabel µkirim¶ pasti berhasil pada tahun depan.`tgl Kirim`) 5. seperti tabel INBOX. 2.). 3. berarti SMS ucapan sebelumnya sudah pernah terkirim. 4. url=<?php $_SERVER['PHP_SELF']. '1979 -02-21'). Berdasarkan ide di atas.

TextDecoded. // proses kirim sms via insert data ke tabel outbox 45. $query2 = "INSERT INTO outbox (DestinationNumber. 10. if ($hasil2) 40. tglKirim) VALUES ('$noHP'.$now = date("Y -m-d"). 19.</html> Script di atas akan melakukan autorefresh setiap 10 detik. 24. "dbuser".09. $hasil2 = mysql_query($query2). url=<?php $_SERVER['PHP_SELF']. 33. 38. 47. "dbpass"). '$now')". } 48. 32.// koneksi ke database mysql 13. // jika proses insert ke tabel kirim sukses maka kirim sms ucapan 39.// baca tahun -bulan-tanggal sekarang 23.$hasil = mysql_query($query). 34. 22. 16.<meta http-equiv="refresh" content="10. 21. CreatorID) VALUES ('$noHP'.$query = "SELECT * FROM friends WHERE DAY(tglLahir) = '$tglNow' AND MONTH(tglLahir) = '$blnNow'".// baca bulan sekarang 20. semakin bertambah pula amalan ibadahmu. 50. 15. 52. Happy Birthday !! Semoga dengan bertambahn ya usiamu. 25. 44. $query2 = "INSERT INTO kirim (noHP. mysql_query($query2). 46.$tglNow = date("d").// baca tanggal sekarang 17.$blnNow = date("m"). 12.mysql_connect("ldbhost". 37. { 41. 14.". 18.<?php 11. $pesanSMS = "Wahai sahabatku ". 28.mysql_select_db("dbname"). disertai nama temannya 42.while ($data = mysql_fetch_array($hasil)) 29. '$pesanSMS'.?> 51.// cari data teman yang bulan lahir dan tanggal lahir sesuai pada current date 26. // baca nomor HP dan nama teman 31. 27. 36. Perhatikan perintah di bawah ini view sourceprint? 1. 'Gammu')". $noHP = $data['noHP'].".{ 30.</body> 53.} 49. 43. ?>"> .$nama. // isi pesan SMS ucapan ultah. // insert data ke tabel kirim 35. $nama = $data['nama'].

siap-siap modal yang banyak pula untuk biaya pengiriman SMS ucapan ultahnya tapi gak ada masalah sih. bukankah persahabatan butuh pengorbanan? Selamat mencoba ya« Script sms ultah di atas sudah diuji coba dan berjalan dengan lancar di modem Wavecom Fastrack. ya.Bagaimana mudah bukan membuatnya? Bila teman Anda banyak. ..

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->