HTTP Post dengan Javascript
Beberapa hari yang lalu saya menemukan aplikasi menarik untuk mengirimkan SMS dari komputer dengan menggunakan beberapa SMS gateway termasuk Indosat. Aplikasi tersebut dapat diunduh di
http://zekiller.skytech.org/smssend_menu_en.htmlYang membuat saya tertarik adalah salah satu situs anak bangsa
www.penjahat.org yang telah menggunakan aplikasi ini untuk mengirimkan SMS dengan SMS gateway-nya Indosat (Club Mentari).
Dari situs tersebut kemudian saya berfikir bagaimana cara memanfaatkan smssend-nya
penjahat.org untuk mengirimkan SMS dari situs saya. Pertama saya coba untuk membuat IFRAME yang saya isi dengan URL
http://www.penjahat.org/sms/data.php, setelah saya coba kirim SMS oops... ternyata halaman di-redirect ke
http://nkexkpgmxm5o4rg6.usercash.com/. Teknik ini tentu saja tidak bisa digunakan untuk menempelkan fasilitas kirim SMS ke dalam situs kita.
Setelah membaca beberapa artikel, saya teringan akan AJAX. Kemampuan untuk melakukan HTTP POST menggunakan javascript saya manfaatkan untuk mengirimkan data yang dibutuhkan oleh si
penjahat.org guna mengirim SMS. Alhasil, beberapa kode javascript yang saya tulis dapat mengirimkan SMS ke nomor HP saya sendiri.
<html> <head><title>SMS Gratis</title> </head> <body> <table border="0" cellspacing="0" cellpadding="0"> <tr> <tr><td>To: <input type="text" id="email" name="email" style="width: 140px"></td></tr> <tr><td align="center">Example: 6281578135130</td></tr> <tr> <td width="100%" align="center" valign="middle"> Text to send<br> <textarea rows="5" id="message" name="message" onkeyup="messageLeave(this);" onkeydown="messageLeave(this);" style="width: 164px"></textarea> </td> </tr> <tr><td>Message length: <span id="charLen" name="charLen">0</span></td></tr> <tr> <td width="100%" align="center" valign="top"> <script language="javascript"> var url = "http://www.penjahat.org/sms/go.php"; function messageLeave(obj) { if (obj.value.length > 124) { obj.value = obj.value.substring(0, 124); } document.getElementById('charLen').innerHTML = obj.value.length; } function sendSMS() { document.getElementById('status').innerHTML = 'Sending message...'; http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari, ... http_request = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE http_request = new ActiveXObject("Microsoft.XMLHTTP"); } if (!http_request) { alert('Cannot create XMLHTTP instance'); return false; } // prepare the MIME POST data var _email = document.getElementById('email').value; var _message = document.getElementById('message').value; while (_message.indexOf('\r\n') >= 0) { isiSMS = _message.replace('\r\n', ''); } // do the AJAX request var messageBody = 'email=' + _email + '&message=' + _message; http_request.onreadystatechange = requestdone; http_request.open('POST', url, true); http_request.setRequestHeader("Accept", "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/x-shockwave-flash, application/cade, */*"); http_request.setRequestHeader("Accept-Language", "id"); http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); http_request.setRequestHeader("Accept-Encoding", "gzip, deflate"); http_request.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)"); http_request.setRequestHeader("Proxy-Connection", "Keep-Alive"); http_request.setRequestHeader("Pragma", "no-cache"); http_request.setRequestHeader("Host", "www.penjahat.org"); http_request.setRequestHeader("Content-length", _message.length); http_request.send(messageBody); } function requestdone() { if (http_request.readyState == 4) { if (http_request.status == 200) { result = http_request.responseText; if (result.indexOf('Message successfully sent!') >= 0) { document.getElementById('status').innerHTML = 'Message successfully sent!'; return; } if (result.indexOf('Invalid Input!') >= 0) { document.getElementById('status').innerHTML = 'Invalid Input!'; return; } alert(result); } else { alert('There was a problem with the request.'); } } } </script> <input type="button" value="Send" onclick="sendSMS()"> </td> </tr> <tr><td><span id="status" style="background-color: #f7f7f7; display: block; width: 100%"></span></td></tr> </table> </body> </html> |
Kode program tersebut hanya bisa berjalan jika tidak ada perubahan di
penjahat.org karena mesin pengirim SMS sebenarnya berada di sana.
Jika script ini tidak lagi berjalan dengan baik, coba ganti konfigurasi URL pada baris
var url = "http://www.penjahat.org/sms/go.php";
Ganti URL menjadi alamat http post pada pengiriman SMS di penjahat.org
Untuk dapat mengetahui URL yang digunakan, buka alamat http://www.penjahat.org/sms/data.php dan lihat kode sumbernya pada baris
<form action="index.php?id=kirim" method="post" name="freesms" Dari informasi tersebut ternyata alamat URLnya telah diganti menjadi
index.php?id=kirimJadi baris tersebut harus diganti dengan:
var url = "http://www.penjahat.org/sms/index.php?id=kirim";
Satu lagi yang harus disesuaikan adalah pada baris untuk menampilkan informasi status
if (result.indexOf('Message successfully sent!')
saat ini sudah tidak valid lagi. Ganti dengan
if (result.indexOf('usercash.com')
Contoh di atas telah diterapkan di situs yang saya buat yaitu http://freesms.i4host.net/
Semoga bermanfaat