Welcome to Dotnet Semarang Sign in | Join | Help

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.html
Yang 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=kirim
Jadi 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



Published Tuesday, May 30, 2006 7:15 AM by cahnom
Attachment(s): sms.html

Comments

# re: HTTP Post dengan Javascript

Beberapa jam setelah blog ini di-post, terdapat perubahan di penjahat.org sehingga script tersebut tidak dapat digunakan.
Untuk dapat menggunakan, ubah baris pertama pada javascript dari
var url = "http://www.penjahat.org/sms/go.php";
menjadi
var url = "http://www.penjahat.org/sms/index.php?id=kirim";
Dan untuk menyempurnakan laporan, ganti baris
if (result.indexOf('Message successfully sent!') >= 0) {
menjadi
if (result.indexOf('usercash.com') >= 0) {
Tuesday, May 30, 2006 10:23 AM by cahnom
Anonymous comments are disabled