{"id":932,"date":"2011-07-20T08:33:50","date_gmt":"2011-07-20T08:33:50","guid":{"rendered":"http:\/\/gigihfordanama.wordpress.com\/?p=932"},"modified":"2012-08-08T00:09:43","modified_gmt":"2012-08-08T00:09:43","slug":"sms-gateway-with-autoreply-implement-for-password-reminder-base-sms-write-on-php","status":"publish","type":"post","link":"https:\/\/dosen.unila.ac.id\/gigih\/2011\/07\/20\/sms-gateway-with-autoreply-implement-for-password-reminder-base-sms-write-on-php\/","title":{"rendered":"SMS Gateway With autoreply, implement for Password Reminder base SMS write on PHP"},"content":{"rendered":"<p>Lanjut Ngoprek, kali ini\u00a0 membuat aplikasi SMS-Gateway dengan fasilitas auto reply sehingga bisa diimplementasikan sebagai system reminder berbasis SMS bersifat multipurpose problem solving tetap dengan backend aplikasi Gammu dan PHP berjalan dibelakangnya. \ud83d\ude00 . Rencananya akan dicoba secara bertahap mulai dari reminder account pengguna layanan proxy, email, hotspot, atau SIAKAD atau LEMLIT (repot memang kalau belum masuk ke single sign on &#8211; padahal sdh saya coba usulkan ke yg berwenang untuk hal ini ).<\/p>\n<p>Kondisi\u00a0 replying system\u00a0 yg dinginkan adalah sebagai berikut;<\/p>\n<ul>\n<li>Hanya user dengan\u00a0 login valid yang dijawab sistem.<\/li>\n<li>User sebelumnya harus sudah mendaftarkan nomor Handphonenya agar\u00a0 bisa menggunakan layanan ini.<\/li>\n<li>Penggabungan antara Matching source No_HP <strong>dan<\/strong> ID_Login dibuat sebagai filternya.<\/li>\n<li>Informasi yang dikirimkan ke No_HP user adalah informasi account saat ini.<\/li>\n<\/ul>\n<p>Mari kita buat sample data\u00a0 dengan membuat tabel baru kedalam database default gammu <a href=\"http:\/\/gigihfordanama.wordpress.com\/2011\/07\/19\/develop-sms-gateway-with-gammu-php-mysql-on-ubuntu-10-10\/\">(jika belum jelas\u00a0 bentuk databasenya seperti apa bisa lihat disini )<\/a><\/p>\n<pre style=\"padding-left:30px\"><strong>SQL Code<\/strong>\n <em>CREATE TABLE IF NOT EXISTS `proxy` (<\/em>\n <em>\u00a0 `no_hp` varchar(50) NOT NULL,<\/em>\n <em>\u00a0 `login` varchar(10) NOT NULL DEFAULT '',<\/em>\n <em>\u00a0 `password` varchar(20) DEFAULT NULL,<\/em>\n <em>\u00a0 `expired_date` varchar(60) DEFAULT NULL,<\/em>\n <em>\u00a0 PRIMARY KEY (`no_hp`)<\/em>\n <em>) ENGINE=MyISAM DEFAULT CHARSET=latin1;<\/em><\/pre>\n<p><strong>PHP CODE\u00a0 autoreply.php<\/strong><\/p>\n<pre style=\"padding-left:30px\"><em>&lt;html&gt;<\/em>\n <em>&lt;head&gt;<\/em>\n <em>&lt;!-- refresh script SMS RETRIEVE AUTO REPLY setiap 10 detik --&gt;<\/em>\n <em>&lt;meta http-equiv=\"refresh\" content=\"10; url=&lt;?php $_SERVER['PHP_SELF']; ?&gt;\"&gt;<\/em>\n <em>&lt;\/head&gt;<\/em>\n <em>&lt;body&gt;<\/em>\n <em>&lt;h1&gt;SMS-GATEWAY Server Is Running....&lt;\/h1&gt;<\/em>\n <em>&lt;?php<\/em>\n <em>\/\/Open Connections to Mysql Server<\/em>\n <em>mysql_connect(\"localhost\", \"root\", \"xxxx\");<\/em>\n <em>mysql_select_db(\"gammu\");<\/em>\n<\/pre>\n<p><!--more--><\/p>\n<pre style=\"padding-left:30px\"><em>\/\/ query\u00a0 membaca SMS yang belum diproses<\/em>\n <em>$query = \"SELECT * FROM inbox WHERE Processed = 'false'\";<\/em>\n <em>$hasil = mysql_query($query);<\/em>\n <em>while ($data = mysql_fetch_array($hasil))<\/em>\n <em>{<\/em>\n <em>\u00a0 \/\/ membaca ID SMS<\/em>\n <em>\u00a0 $id = $data['ID'];<\/em>\n<em>\u00a0 \/\/ membaca no pengirim<\/em>\n <em>\u00a0 $noPengirim = $data['SenderNumber'];<\/em>\n<em>\u00a0 \/\/ membaca pesan SMS dan mengubahnya menjadi kapital<\/em>\n <em>\u00a0 $msg = $data['TextDecoded'];<\/em>\n<em>\u00a0 \/\/ proses parsing<\/em>\n <em>\u00a0 \/\/ memecah pesan berdasarkan karakter &lt;spasi&gt;<\/em>\n <em>\u00a0 $pecah = explode(\" \", $msg);<\/em>\n<em>\u00a0 \/\/ jika kata terdepan dari SMS adalah 'login' maka cari login\u00a0 User<\/em>\n <em>\u00a0 if ($pecah[0] == \"login\")<\/em>\n <em>\u00a0 {<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 \/\/ baca login\u00a0 dari text\u00a0 SMS<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 $nim = $pecah[1];<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0 \/\/ cari login berdasarkan entri login di sms masuk dan digabung dengan no Pengirim<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 $query2 = \"SELECT * FROM proxy WHERE\u00a0 (login='$nim' AND no_hp='$noPengirim')\u00a0 \";<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 $hasil2 = mysql_query($query2);<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0 \/\/ cek bila data Login tidak ditemukan<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 if (mysql_num_rows($hasil2) == 0) $reply = \"No HP Atau Login anda Tidak Dikenali\";<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 else<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0 {<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ bila nilai ditemukan<\/em> maka\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $data2 = mysql_fetch_array($hasil2);<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $nilai = $data2['login'];<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $nilai4 = $data2['password'];<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $nilai5 = $data2['expired_date'];<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $note\u00a0\u00a0\u00a0 = 'Reminder Untuk User Anda : ';<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $note2\u00a0\u00a0\u00a0 = ' Password:';<\/em>\n <em>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 $note3\u00a0\u00a0\u00a0 = ' Masa Aktif:';<\/em>\n<em>\u00a0\u00a0\u00a0\u00a0 }<\/em>\n <em>\u00a0 }<\/em>\n <em>\u00a0 else $reply = \"Maaf perintah\u00a0 Anda salah\";<\/em>\n<em>\u00a0 \/\/ Buat SMS balasan ke pengirim Pesan<\/em>\n<em>\u00a0 $query3 = \"INSERT INTO outbox(DestinationNumber, TextDecoded) VALUES ('$noPengirim',\u00a0 '$note$nilai$note2$nilai4$note3$nilai5')\";<\/em>\n <em>\u00a0 $hasil3 = mysql_query($query3);<\/em>\n<em>\u00a0 \/\/ ubah nilai 'processed' menjadi 'true' untuk setiap SMS yang telah diproses agar SMS tidak direply lagi oleh Mesin<\/em>\n<em>\u00a0 $query3 = \"UPDATE inbox SET Processed = 'true' WHERE ID = '$id'\";<\/em>\n <em>\u00a0 $hasil3 = mysql_query($query3);<\/em>\n <em>}<\/em>\n <em>?&gt;<\/em>\n<em>&lt;\/body&gt;<\/em>\n <em>&lt;\/html&gt;<\/em><\/pre>\n<p>Terakhir jalan kan\u00a0 script php\u00a0\u00a0 <strong>autoreply.php<\/strong> yang sudah dibuat tadi, otomatis setiap 10 detik script akan membaca apakah ada sms masuk didalam tabel inbox kemudian membaca flag sudah diproses atau belum, jika belum diproses system akan memprosesnya kemudian\u00a0 mengirimkan jawaban berupa sms informasi login ke nomor pengirim.<\/p>\n<p>Demikian Tulisan singkat ini dibuat . as reminder.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lanjut Ngoprek, kali ini\u00a0 membuat aplikasi SMS-Gateway dengan fasilitas auto reply sehingga bisa diimplementasikan sebagai system reminder berbasis SMS bersifat multipurpose problem solving tetap dengan backend aplikasi Gammu dan PHP berjalan dibelakangnya. \ud83d\ude00 . Rencananya akan dicoba secara bertahap mulai dari reminder account pengguna layanan proxy, email, hotspot, atau SIAKAD atau LEMLIT (repot memang kalau &hellip; <a href=\"https:\/\/dosen.unila.ac.id\/gigih\/2011\/07\/20\/sms-gateway-with-autoreply-implement-for-password-reminder-base-sms-write-on-php\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;SMS Gateway With autoreply, implement for Password Reminder base SMS write on PHP&#8221;<\/span><\/a><\/p>\n","protected":false},"author":25,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1348,9],"tags":[443,1081],"class_list":["post-932","post","type-post","status-publish","format-standard","hentry","category-kiat-sukses-menjadi-seorang-network-engineer-2","category-world-of-ict","tag-implement-for-password-reminder-base-sms-write-on-php","tag-sms-gateway-with-autoreply"],"_links":{"self":[{"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/posts\/932"}],"collection":[{"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/users\/25"}],"replies":[{"embeddable":true,"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/comments?post=932"}],"version-history":[{"count":0,"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/posts\/932\/revisions"}],"wp:attachment":[{"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/media?parent=932"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/categories?post=932"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dosen.unila.ac.id\/gigih\/wp-json\/wp\/v2\/tags?post=932"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}