12/22/12

Aplikasi PHP Membuat Aplikasi Chat Dengan PHP MySQL

Halo sahabat setia Belajar Pintar PHP, akhir tahun 2012 ini saya ingin membagikan kepada anda semua sebuah aplikasi php yang sangat dibutuhkan dalam sebuah website, apakah itu ? yaitu aplikasi chating sederhana dengan php mysql. Saya asumsikan bahwa anda semua sudah tahu apa itu aplikasi chating, yaitu merupakan sarana bagi pengunjung website ataupun admin untuk berinteraksi secara langsung dengan cara mengetikkan pesan atau komentar yang sifatnya Real-Time. 



Oke tanpa basa-basi ,, 
langsung aja yuk download di link dibawah ini

Download Disini 


Jika anda menemukan kendala dalam pemakaiannya, silahkan koment dibawah ini.
Read more

12/12/12

Source Code PHP : Upload dan Hapus File Gambar

Bagi sahabat belajar pintar php, perlua anda ketahui bahwa untuk meng-upload file gambar (jpg, jpeg, pjpeg, png, gif) kita harus menggunakan fungsi php yang satu ini yaitu, move_uploaded_file (string path, string new_path), dan untuk menghapus file gambar yang telah di-upload tersebut digunakan fungsi unlink (string filename).  Dimana file gambar akan disimpan di direktori/folder ‘images’ dan data gambar (file_name, ukuran, direktori dan deskripsi gambar) akan disimpan di tabel ‘file_gambar’. 

Untuk membuat tabel tempat menyimpan informasi gambar yang akan di upload, copy dan paste sintak SQL berikut di phpMyAdmin Run SQL query/queries on database database_ku.
CREATE TABLE `database_ku`.`file_gambar` (
`file_id` INT( 5 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`file_name` VARCHAR( 50 ) NOT NULL ,
`ukuran` INT( 10 ) NOT NULL ,
`direktori` VARCHAR( 50 ) NOT NULL ,
`deskripsi` TEXT NOT NULL
) ENGINE = MYISAM
Ini sedikit potongan skripnya :

Form upload gambar:

<form action="upload-hapus.php?act=upload" method="post" enctype="multipart/form-data">
<p><input name="fgambar" type="file" id="fgambar" /></p>
<p>Tipe file yang diperbolehkan jpg, jpeg, pjpeg, png atau gif.</p>
<p>Deskripsi:</p>
<p><textarea name="deskripsi" cols="38" rows="5" id="deskripsi">
</textarea></p>
<input type="hidden" name="direktori" id="direktori" value="images" />
<p><input name="upload" type="submit" value="Upload" id="upload" /></p>
</form>
Untuk menampilkan gambar yang telah di upload:
<?php
//tampilkan gambar tersedia
$SQL ="SELECT * FROM file_gambar";
$qryGambar =@mysql_query($SQL);
$no=0;
while($row =@mysql_fetch_array($qryGambar)):
$no++;
$conf ="Anda yakin akan menghapus gambar ".$row['file_name'];
echo '<p>No : '.$no.'</p>';
echo '<p>Nama : '.$row['file_name'].' | <a href="upload-hapus.php?act=hapus&id='.$row['file_id'].'" onclick="return confirm(\'Anda yakin akan menghapus gambar '.$row['file_name'].'\');">Hapus</a></p>';
echo '<p>Ukuran : '.$row['ukuran'].' bytes</p>';
echo '<p><img src="'.$row['direktori'].'/'.$row['file_name'].'" /></p>';
echo '<p>Deskripsi : '.$row['deskripsi'].'</p><hr />';
endwhile;
if($no==0){
echo "<p>Gambar belum tersedia.</p>";
}
?>
Skrip untuk meng-upload gambar:
<?php
include "koneksi.php"; //koneksi dengan database
if($_GET['act']=='upload'):
$tipe =$_FILES['fgambar']['type'];
if( $tipe != "image/jpg" AND
$tipe != "image/jpeg" AND
$tipe != "image/pjpeg" AND
$tipe != "image/png" AND
$tipe != "image/gif"){
echo '<p><b>Upload Gagal</b></p>';
echo '<p>Tipe file yang diperbolehkan jpg, jpeg, pjpeg, png atau gif.</p>';
echo '<p><a href="index.php">ULANGI</p></p>';
}else{
$file_name =$_FILES['fgambar']['name'];
$ukuran =$_FILES['fgambar']['size'];
$direktori =$_POST['direktori'];
$deskripsi =$_POST['deskripsi'];
//Cek gambar
$SQL ="SELECT file_name FROM file_gambar WHERE file_name='$file_name'";
$qGambar =@mysql_query($SQL);
if(count(@mysql_fetch_array($qGambar)) > 1){
echo '<p><b>Upload Gagal</b></p>';
echo '<p>Gambar telah tersedia</p>';
echo '<p><a href="index.php">KEMBALI</p></p>';
}else{
//upload gambar
move_uploaded_file($_FILES['fgambar']['tmp_name'],$direktori.'/'.$file_name);
//simpan data gambar
@mysql_query("INSERT INTO file_gambar"
SET file_name ='$file_name',
ukuran ='$ukuran',
direktori ='$direktori',
deskripsi ='$deskripsi'");"
header('location:index.php');
}
}
endif;
?>
Skrip untuk meng-hapus gambar:
<?php
if($_GET['act']=='hapus'):
//pilih gambar
$id =$_GET['id'];
$SQL ="SELECT * FROM file_gambar WHERE file_id='$id'";
$qGambar =@mysql_query($SQL);
$row =@mysql_fetch_array($qGambar);
//hapus gambar
if(file_exists($row['direktori'].'/'.$row['file_name']))
unlink($row['direktori'].'/'.$row['file_name']);
//hapus data gambar
@mysql_query("DELETE FROM file_gambar WHERE file_id='$id'");
header('location:index.php');
endif;
?>
Belajar pintar php

Jika gambar di hapus akan muncul pesan konfirmasi seperti ini:
konfirmasi-hapus

untuk skrip lengkapnya dapat anda download di  sini.

Sekian source code upload hapus gambar php nya , selamat mencoba buat sahabat belajar pintar php yang cukup setia sampai saat ini.
Read more

Code PHP : Mengecek Username dan Email dengan AJAX PHP


Bagi sahabat Belajar Pintar PHP , perlu anda ketahui bahwa setiap aplikasi web yang bekerja dengan AJAX bekerja secara asynchronously, artinya adalah mengirim dan menerima data dari user ke server tanpa perlu me-load kembali seluruh halaman browser kita, melainkan hanya melakukan penggantian pada bagian web yang hendak di ubah. AJAX (Asynchronouse JavaScript and XML) diperkenalkan oleh James Garrent dari Adaptive Path pada tahun 2005 dan mulai popular ketika digunakan oleh Google pada tahun 2005.

Pada hari istimewa ini tepat tanggal 12 bulan 12 tahun 2012, saya ingin berbagi script php yaitu skrip yang untuk mengecek username dan email yang telah terdaftar dan tersimpan dalam database dengan Object XMLHTTPRequest, yaitu pengecekan dapat dilakukan tanpa harus me-load seluruh halaman web. 


Properti - properti dalam  XMLHTTPRequest:

  • Onreadystatechange : Mengangani event setiap kali status berubah.
  • Ready state : 0 = uninitialized, 1 = loading, 2 = loaded, 3 = interactive, 4 = complete.
  • resrponseText : reponse yang dikembalikan dalam bentuk string
  • Status    : 404 = “Not Found”, 200 = ‘OK’.
  • StatusText : “Not Fount” atau ”OK”

<html>
<head>
<title>code php untuk Mengecek Ketersediaan Username dan Email dengan AJAX</title>
<script type="text/javascript">
var RO = RequestObject();
function RequestObject(){
var browser = navigator.appName;
if(browser == 'Microsoft Internet Explorer')
return new ActiveXObject('Microsoft.XMLHTTP')
else
return new XMLHttpRequest();
}
function cekKetersediaan(target){
var username = document.getElementById('username').value;
var email = document.getElementById('email').value;
if(target =='username' && username !="){
RO.open('get''cek-username-email.php?username='+username+'&email=0', true);
}else if(target =='email' && email !="){
RO.open('get''cek-username-email.php?username=0&email='+email, true);
}else{
alert('Masukan '+target);
}
RO.onreadystatechange = function() {
if((RO.readyState ==4) && (RO.status == 200)){
var hasil =RO.responseText;
if( hasil == '1'){
document.getElementById('hasil-cek').style.color ='#FF0000';
document.getElementById('hasil-cek').innerHTML =target+' tidak tersedia';
}else{
document.getElementById('hasil-cek').style.color ='#000000';
document.getElementById('hasil-cek').innerHTML =target+' tersedia';
}
}
}
RO.send(null);
return false;
}
</script>
</head>
<body>
<body>
<div>
<p>&nbsp;</p>
<h1>Cek disini Username dan Email</h1>
<div>
<table border="0" cellspacing="0" cellpadding="0" id="tbl">
<tr>
<td>Username</td>
<td><input name="username" type="text" id="username" size="30" /></td>
<td><a href="#" onclick="return cekKetersediaan('username');">Cek Ketersediaan Username</a></td>
</tr>
<tr>
<td>Email</td>
<td><input name="email" type="text" id="email" size="30" /></td>
<td><a href="#" onclick="return cekKetersediaan('email');">Cek Ketersediaan Email</a></td>
</tr>
<tr>
<td>&nbsp;</td>
<td id="hasil-cek"></td>
<td>&nbsp;</td>
</tr>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>
</body>
</html>
</script>


Bagi sahabat yang berminat dapat download skrip / kodenya di download disini.
Sekian Tutorial ajax php dari saya, semoga bermanfaat.
Read more

Source Code Membuat Upload File Tanpa Reload Halaman dengan PHP jQuery


Halo sahabat belajar pintar php, pada malam yang istimewa ini tepat pada tanggal 12 bulan 12 tahun 2012 dan jam 12 malam juga, saya ingin membagikan kepada sahabat sekalian postingan yang istimewa juga yaitu skrip php untuk upload file tanpa reload halaman, dan tentunya disini kita harus menggunakan bantuan jquery. Kenapa harus bantuan jquery ? tentu ada salah satu dari sahabat sekalian yang bertanya demikian, jawabannya sih simpel aja, jquery itu bekerja di balik server, sebagai contoh seperti siaran televisi, kita bisa menonton siaran non stop 24 jam tanpa henti, benarkan, tapi anda tahu gak dibalik itu semua kan ada para karyawan atau pekerja yang bekerja dibalik itu semua pada instansi penyiaran itu, hal ini agak mirip dengan jquery, seperti sama halnya dengan twiter, berita terbarunya atau twit orang2 yang anda follow kan otomatis bertambah atau bermunculan satu demi satu tanpa kita harus me reload browser kita, itu lah kerjaan atau tugas si jquery kita ini, dialah bekerja dibalik ini semua hingga kita tidak perlu mereload halaman browser kita. Sampai disini sahabat setia belajar pintar php sudah paham kan. Oke kalau gitu mari kita ke TKP ..!!!

Sahabat semua demi keamanan web jQuery tidak mengizinkan men-submit form yang memiliki enctype multipart/form-data secara langsung dengan menggunakan Ajax Post nantinya, $_FILES tidak akan  dikenali.  Sebagai penggantinya jQuery menyediakan plugin jquery.iframe-post-form.js

Berikut saya berikan contoh aplikasi sederhana dari pluginiframe-post-form yang akan digunakan untuk meng-upload file gambar (*gif, *jpg, *png atau *jpeg). Proses upload dapat berlangsung tanpa harus me-reload halaman browser anda . karena pada skrip dilengkapi dengan simple modal jquery.simplemodal.js untuk menampilkan animasi uploading sebagai tanda bahwa proses upload sedang berlangsung. mirip seperti kita mengupload foto di facebook. Form upload dan hasil upload akan ditampilkan seperti gambar dibawah ini:
upload-tanpa-reload
Upload akan berlangsung saat nilai fupload (Pilih File yang akan di upload) berubah.

berikut saya tampilkan potongan skripnya.

<script src=”js/jquery-1.3.2.js”></script>
<script src=”js/jquery.iframe-post-form.js”></script>
<script src=”js/jquery.simplemodal.js”></script>
<script src=”js/mgupload.js”></script>

$(’#fupload’).change(function(){
$(’#form-upload’).submit();
});
$(’#form-upload’).iframePostForm ({
post : function (){
$(’#uploading’).modal();
},
complete : function (result){
$.modal.close();
$(”#up-result”).html(result);
}
});
Sahabat Belajar Pintar PHP dapat mendownload skrip lengkapnya  di sini

Jika anda sudah selesai mendownload skripnya, anda yang pengen berkreasi sendiri dapat merombak atau memodifikasi skripnya pada tanda yang diberikan di dalam kodingnya.

Untuk memodifiksi skrip dapat anda lihat  kode ‘<!–MODIFIKASI SKRIP MULAI DISINI’ pada skrip halaman index.php

Sekian tutorial membuat aplikasi upload file tanpa reload dari saya, selamat mencoba.
Read more

12/9/12

Tips PHP : (SMS GATEWAY PHP MYSQL) Masalah-Masalah di Gammu dan cara Mengatasinya

Halo sahabat setia Belajar Pintar PHP, lama tidak posting lagi nih, oke ,,, kali ini saya ingin membagikan kepada anda cara mengatasi masalah yang muncul dalam sms gateway. ini juga karena sudah banyaknya yang pengujung yang mengalami masalah dalam pembuatan sms gateway.
oke tanpa banyak basa-basi, langsung saja kita bahas satu-persatu sekarang.

1. Pesan “Missing msvcr71.dll”

Pesan ini muncul dalam bentuk pop up window. Pesan ini seringkali muncul ketika cek koneksi Gammu dengan modem atau ketika mengetikkan command: gammu identify. Apa penyebab munculnya error tersebut? Penyebabnya adalah tidak adanya file library msvcr71.dll pada windows anda, atau bisa juga file tersebut corrupt atau diserang virus. Penyebab hilang atau corruptnya file tersebut bisa jadi karena virus atau terhapus secara tidak sengaja.
Solusinya :
Solusinya adalah menaruh kembali file msvcr71.dll ke dalam direktori C:/WINDOWS/SYSTEM32 (Jika Anda menggunakan Windows XP atau 7 32 bit), atau C:/WINDOWS/SYSWOW64 jika Anda menggunakan Win 7 64 bit. Anda bisa mendownload file msvcr71.dll tersebut di http://www.4shared.com/file/W94ZJ9vr/msvcr71.html.

2. Pesan “Error installing gammu service”

Pesan error ini muncul pada waktu proses pembuatan atau instalasi service gammunya, atau setelah mengetikkan command: gammu-smsd -c smsdrc -i. Penyebab dari error tersebut adalah pengaruh dari sistem keamanan Windows yang tidak mengijinkan untuk membuat service. Biasanya hal ini terjadi di Windows 7.
Solusinya :
Solusinya adalah, sebelum menginstall service pastikan Anda sudah menurunkan level UAC (User Account Control) sampai ke level paling bawah. Di manakah pengaturan UAC nya? Untuk mengubah level UAC, silakan masuk ke control panel windows, kemudian pada kotak pencarian ketikkan saja: uac. Kemudian klik pada bagian ‘Change User Account Control Setting’. Setelah itu drag saja panel levelnya sampai pada level paling bawah (never notify). Kemudian restart PC atau Laptop anda. Selanjutnya ulangi lagi proses pembuatan servicenya.

3. Pesan “The drive cannot find the sector requested.”

Pesan di atas muncul ketika akan menjalankan service gammu yang telah dibuat. Apa penyebab dari error tersebut? berikut beberapa kemungkinan penyebabnya :
  • Ada beberapa struktur tabel database Gammu yang tidak lengkap (belum dibuat), atau ada tabel database yang corrupt atau rusak. Solusi dari penyebab ini adalah melakukan repair tabel dari yang corrupt tersebut (bisa melalui phpMyAdmin), atau jika ternyata ada tabel dari database Gammu yang belum diinstall, maka segera buat tabel yang kurang tersebut.
  • Adanya ketidaksesuaian nama database yang disetting di file SMSDRC nya dengan nama database MySQL atau database lain yang sudah dibuat. Solusinya pastikan nama database di file SMSDRC sama dengan database yang sudah Anda buat tempat Anda membuat tabel-tabel Gammu nya. Jika ternyata memang nama database yang di SMSDRC salah, maka hapus terlebih dahulu service Gammu yang sudah dibuat, kemudian buat lagi servicenya.
  • Username dan password koneksi ke database Gammu yang sudah disetting di file SMSDRC tidak sesuai atau salah. Solusinya pastikan username dan password koneksi ke database Gammunya benar. Jika ternyata username dan password di SMSDRC ini salah, maka hapus dahulu service gammu nya dan lakukan instalasi service ulang.
  • Struktur tabel database Gammu yang sudah dibuat berasal dari versi Gammu yang berbeda dengan Gammu yang sedang digunakan. Sebagai contoh misalkan Anda menggunakan Gammu versi X, tapi struktur tabel databasenya mengambil dari Gammu versi Y. Solusinya, pastikan struktur tabel database Gammu yang akan Anda buat berasal dari versi Gammu yang Anda gunakan.
Sekian tutorial SMS Gateway nya, saya harap dengan tutorial yang cukup singkat ini, dapat membantu anda para sahabat setia Belajar Pintar PHP dalam pembuatan SMS Gateway PHP MYSQL menjadi sempurna.
Terimakasih,
Read more

11/25/12

CodeIgniter : Cara Mengirim Email Dengan CodeIgniter PHP


Mengirim Email

Halo sahabat Belajar Pintar PHP, mengirim email tidak hanya sederhana, tetapi Anda dapat mengkonfigurasinya dengan cepat atau menetapkan preferensi Anda dalam file konfigurasi.
Berikut adalah contoh dasar menunjukkan bagaimana Anda bisa mengirim email

Catatan: Contoh ini mengasumsikan Anda mengirim email dari salah satu controllers Anda.

$this->load->library('email');

$this->email->from('ivan@contoh.com', 'nama anda');
$this->email->to('seseorang@contoh.com'); 
$this->email->cc('contoh@contoh-contoh.com'); 
$this->email->bcc('mereka@kalian-contoh.com'); 

$this->email->subject('Test Email');
$this->email->message('Mari Belajar Pintar PHP.');

$this->email->send();

echo $this->email->print_debugger();


Mengatur Preferensi Email

Perlu anda ketahui sahabat belajar pintar php , bahwa disini ada 17 pilihan yang berbeda tersedia untuk menyesuaikan bagaimana pesan email Anda dikirim. Anda dapat mengatur secara manual seperti yang dijelaskan di sini, atau secara otomatis melalui preferensi yang tersimpan dalam file konfigurasi Anda, dijelaskan di bawah ini:

Preferensi ditetapkan dengan melewatkan array nilai preferensi untuk fungsi initialize email. Berikut adalah contoh bagaimana Anda dapat mengatur beberapa preferensi:

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;

$this->email->initialize($config);

Catatan: Sebagian besar preferensi memiliki nilai default yang akan digunakan jika Anda tidak menetapkannya.


Mengatur Preferensi Email di File Config


Jika sahabat semua memilih untuk tidak menetapkan preferensi menggunakan metode di atas, Anda juga bisa menempatkannya ke dalam sebuah file konfigurasi. Cukup membuat file baru yang disebut email.php, tambahkan array $ config dalam file tersebut. Kemudian simpan file di config / email.php dan akan digunakan secara otomatis. Anda tidak akan perlu menggunakan $ this-> email-> initialize () fungsi jika Anda menyimpan preferensi Anda dalam file konfigurasi.

Preferensi Email

Berikut ini adalah daftar semua preferensi yang dapat diatur saat mengirim email.
PreferensiNilai DefaultOptions / PilihanDeskripsi
useragentCodeIgniterNone "user agent".
protocolmailmail, sendmail, or smtpProtokol pengiriman email.
mailpath/usr/sbin/sendmailNoneJalur server untuk pengiriman email.
smtp_hostNo DefaultNoneSMTP Alamat Server.
smtp_userNo DefaultNoneSMTP Username.
smtp_passNo DefaultNoneSMTP Password.
smtp_port25NoneSMTP Port.
smtp_timeout5NoneSMTP Timeout (in seconds).
wordwrapTRUETRUE or FALSE (boolean)aktif / tidak aktif word-wrap.
wrapchars76menghitung karakter pada wrap at.
mailtypetexttext or htmlJenis mail. Jika Anda mengirim email HTML, Anda harus mengirimkannya sebagai halaman web lengkap. Pastikan Anda tidak memiliki link relatif atau path relatif ke gambar kalau tidak ini tidak akan bekerja.
charsetutf-8set karakter (utf-8, iso-8859-1, etc.).
validateFALSETRUE or FALSE (boolean)Apakah akan memvalidasi alamat email.
priority31, 2, 3, 4, 5Email Prioritas. 1 = tertinggi. 5 = terendah. 3 normal =.
crlf\n"\r\n" or "\n" or "\r"Karakter baris baru. (Gunakan "\ r \ n" untuk mematuhi RFC 822).
newline\n"\r\n" or "\n" or "\r"Karakter baris baru. (Gunakan "\ r \ n" untuk mematuhi RFC 822).
bcc_batch_modeFALSETRUE or FALSE (boolean)Aktifkan Batch Mode BCC.
bcc_batch_size200NoneJumlah email di setiap batch BCC.

Email Function Reference

$this->email->from()
Mengatur alamat email dan nama orang yang mengirim email:

$this->email->from('ivan@contoh.com', 'Nama Anda');

$this->email->reply_to() 
Mengatur balasan-untuk mengatasi. Jika informasi tersebut tidak diberikan informasi dalam fungsi "dari" digunakan. contoh:

$this->email->reply_to('ivan@contoh.com', 'Nama Anda');

$this->email->to()
Mengatur alamat email (s) dari penerima (s). Bisa satu email, daftar koma-delimited atau array:

$this->email->to('someone@example.com');

$this->email->to('one@example.comtwo@example.comthree@example.com');

$list = array('one@example.com', 'two@example.com', 'three@example.com');

$this->email->to($list);

$this->email->cc()

Mengatur email address CC (s). Sama seperti "untuk", bisa menjadi satu email, daftar koma-delimited atau array.


$this->email->bcc()

Mengatur alamat email BCC (s). Sama seperti "untuk", bisa menjadi satu email, daftar koma-delimited atau array.
$this->email->subject()
Mengatur subjek email:

$this->email->subject('Ini adalah subjek saya');

$this->email->message()
Mengatur isi pesan email:

$this->email->message('Ini adalah pesan saya');

$this->email->set_alt_message()
Mengatur tubuh pesan email alternatif:

$this->email->set_alt_message('Ini adalah pesan alternatif');

Ini adalah string pesan opsional yang dapat digunakan jika Anda mengirim email HTML diformat. Ini memungkinkan Anda menentukan pesan alternatif tanpa format HTML yang ditambahkan ke string header untuk orang-orang yang tidak menerima email HTML. Jika Anda tidak menetapkan CodeIgniter pesan Anda sendiri akan mengekstrak pesan dari email HTML Anda dan strip tag.
$this->email->clear()
Menginisialisasi semua variabel email ke keadaan kosong. Fungsi ini dimaksudkan untuk digunakan jika Anda menjalankan mengirim email fungsi dalam satu lingkaran, memungkinkan data diatur ulang antara siklus.

foreach ($list as $name => $address)
{
    $this->email->clear();

    $this->email->to($address);
    $this->email->from('your@example.com');
    $this->email->subject('Here is your info '.$name);
    $this->email->message('Hi '.$name.' Here is the info you requested.');
    $this->email->send();
}

Jika Anda mengatur parameter TRUE lampiran akan dihapus juga:

$this->email->clear(TRUE);

$this->email->send()
Email tersebut mengirimkan fungsi. Pengembalian boolean TRUE atau FALSE berdasarkan keberhasilan atau kegagalan, memungkinkan untuk digunakan kondisional:

if ( ! $this->email->send())
{
    // Generate error
}

$this->email->attach()
Memungkinkan Anda untuk mengirim lampiran. Masukan path file / nama dalam parameter pertama. Catatan: Gunakan path file, bukan URL. Untuk beberapa lampiran menggunakan fungsi beberapa kali. Sebagai contoh:

$this->email->attach('/path/to/photo1.jpg');
$this->email->attach('/path/to/photo2.jpg');
$this->email->attach('/path/to/photo3.jpg');

$this->email->send();

$this->email->print_debugger()
Mengembalikan string yang berisi pesan server apapun, header email, dan messsage email. Berguna untuk debugging.

Overriding Word Wrapping

Jika Anda memiliki kata membungkus diaktifkan (dianjurkan untuk mematuhi RFC 822) dan Anda memiliki link yang sangat panjang di email Anda itu bisa dibungkus juga, menyebabkan ia menjadi un-diklik oleh orang yang menerimanya. CodeIgniter memungkinkan Anda secara manual menimpa pembungkus kata dalam bagian dari pesan Anda seperti ini:

The text of your email that
gets wrapped normally.

{unwrap}http://example.com/a_long_link_that_should_not_be_wrapped.html{/unwrap}

More text that will be
wrapped normally.

Tempatkan item yang Anda tidak ingin kata-dibungkus antara: {} {unwrap / unwrap}

Sekian dulu tutorial dari saya, selamat mempraktekkannya sahabat belajar pintar semua.
jangan lupa komentarnya dan like atau send fb nya.
Read more

11/22/12

( SMS GATEWAY PHP MYSQL ) Tahap Demi Tahap Membangun SMS Gateway Dengan PHP MYSQL

Halo sahabat setia Belajar Pintar PHP, sebelumnya saya minta maaf karena saya absen dari hadapan anda beberapa hari ini. Dari komentar dan jumlah visit terhadap postingan SMS Gateway Gammu semakin meningkat, jadi saya akan memberikan tutorial SMS Gateway dengan lengkap kepada anda semua, guna melengkapi kekurangan-kekurangan posting saya sebelumnya mengenai SMS Gateway. Oke tanpa panjang lebar, kita langsung saja ke TKP ...!!!

Disini kita akan membahas tuntas bagaimana cara membuat sebuah SMS gateway dengan Gammu dan cara menghubungkannya dengan web yang sudah anda buat.  Kebetulan setelah saya analisa web sms online.web.id menggunakan Gammu sebagai SMS Gatewaynya sehingga semua orangpun bisa membuatnya dengan hanya mengikuti petunjuk dari saya. Untuk bisa menghubungkan SMS Gateway yang sudah kita bangun dengan web yang sudah anda buat anda diharuskan mengerti konsep dasar jaringan dan routing dengan mikrotik Baik kita langsung mulai saja membahasnya.

A. MEMBANGUN SEBUAH SERVER SMS GATEWAY



What is Gammu ? ( Apa itu Gammu? ), Gammu merupakan sebuah aplikasi/daemon yang dikhususkan untuk membangun sebuah SMS Gateway yang menghubungkan antara operator seluler ke internet dan sebaliknya. Aplikasi ini bersifat open source dibawah lisensi GPL. Sebenarnya Gammu tidak hanya berfungsi sebagai SMS Gateway saja tetap bisa juga untuk melakukan voice call. Untuk mengetahui fitur lengkap dari Gammu silahkan buka websitenya di http://wammu.eu/gammu/. Aplikasi ini tersedia dalam versi Linux dan Windows. Untuk memudahkan manajemen SMS yang ada di INBOX Gammu mempunyai sebuah aplikasi web-based yang dibangun menggunakan PHP oleh anak bangsa dari ITB yang diberi nama  Kalkun. Aplikasi ini menyediakan fitur yang lumayan lengkap untuk memanajemen Gammu. Sebenarnya setelah kita sukses membangun Gammu, maka kita bisa membangun aplikasi SMS Gateway dengan bahasa program atau platform apapun, baik itu web based dengan PHP maupun ASP atau apapun, dan juga desktop dengan menggunakan Delphi, VB atau lainnya.


Saat ini Gammu sudah support HP/Modem GSM terbaru sehingga anda tidak perlu kawatir dengan masalah kompatibilitasnya. Yang akan saya bahas kali ini adalah Gammu versi windows karena Windows sudah banyak digunakan oleh banyak user dan juga lebih familiar. Dalam artikel ini pembahasan akan sampai dengan cara instalasi service dan menjalankannya.

Langkah Pertama (Download File)

Silakan mendownload Gammu nya terlebih dahulu di
http://www.mwiacek.com/zips/gsm/gammu/gammu_win32.zip


Langkah Kedua (Install Gammu)

Secara default setelah file setup di atas diinstal, file gammu terletak di direktori C:\GAMMU.

Langkah Ketiga (Setting Konfigurasi Gammu)

Setelah file Gammu diinstall, langkah berikutnya adalah setting konfigurasi. Setting ini diperlukan guna keperluan penyesuaian jenis HP dan nomor port yang akan digunakan. Bagaimana cara settingnya? Caranya adalah silakan edit file ‘GAMMURC‘ yang ada di dalam direktori ‘C:\gammu‘. Editlah file GAMMURC tersebut menggunakan Notepad atau sejenisnya kemudian anda rubah bagian berikut :

1.[gammu]
2.port =
3.connection =

parameter port itu nanti diisi dengan nomor port sesuai lokasi colokan HP Anda. Untuk mengetahui nomor port dimana Anda colokkan HP Anda di komputer, silakan masuk ke  Control PanelPhone and Modem OptionsModem. Nah… bila HP Anda sudah tercolok di PC dan drivernya sudah terinstal dengan baik maka pastinya pada bagian tersebut akan muncul nomor portnya.


Tips Buat Sahabat Belajar Pintar PHP :

Sebaiknya setiap kali HP Anda dicolokkan ke PC, gunakan lokasi port USB yang sama alias jangan pindah pindah colokan, karena setiap ganti colokan maka nomor portnya akan berubah-ubah. Akibatnya Anda musti ubah setting GAMMURC nya berkali-kali pula karena harus menyesuaikan nomor portnya.

Berikut ini contoh konfigurasi GAMMURC bila saya menggunakan modem Wavecom


M1206B yang terhubung ke port com5 USB.

1.[gammu]
2.port = com5:
3.connection = at115200

(Penting: jangan lupa tanda : di belakang port)

Bila Anda gunakan lebih dari satu HP yang tercolok ke PC, maka Anda bisa menambah atau mengubah konfigurasinya pada bagian :

01.[gammu1]
02..
03..
04.
05.[gammu2]
06..
07..
08.
09.dst..


Langkah Keempat (Uji Koneksi)


Langkah terakhir untuk proses setting GAMMU ini adalah melakukan uji koneksi antara Gammu dengan HP/modem Anda. Langkah ini dilakukan setelah proses setting konfigurasi dilakukan. Caranya adalah dengan masuk folder ‘C:\gammu‘ pada direktori Gammu Anda via DOS PROMPT. Lalu ketikkan perintah ini pada command promptnya.

1.gammu identify

Apabila setelah perintah tersebut dienter lalu muncul informasi mengenai HP Anda, maka koneksi antara Gammu dengan HP Anda sukses. Bila responnya tidak seperti yang diharapkan, maka cek kembali nomor portnya atau jenis connectionnya. Berikut ini contoh tampilan yang keluar apabila proses setting berhasil dilakukan :

SMS Gateway Gammu


Langkah Kelima (Membuat Database MySQL untuk Gammu)

Langkah ini bertujuan untuk menyiapkan database MySQL untuk menampung data-data SMS yang diperlukan Gammu untuk SMS Gateway. Sebenarnya tidak hanya MySQL yang bisa digunakan, namun bisa juga SQL Lite atau Posgre SQL. Namun… dalam artikel ini hanya untuk MySQL saja deh, karena saya tidak familiar dengan yang lainnya.

Caranya adalah buat database dengan nama ‘sms‘ atau yang lain (terserah) menggunakan phpMyAdmin Anda. Lalu buatlah tabel-tabel yang diperlukan oleh Gammu. Waduh.. tabelnya apa aja ya? Don’t worry karena Gammu sudah menyiapkan file dumpnya untuk create tabel. Letak file dumpnya ada di folder ‘C:\gammu\mysql-tabel.sql‘. Nah.. silakan gunakan file dump tersebut untuk membuat tabel-tabelnya menggunakan phpMyAdmin.

Pada Gammu sebenarnya SMS tidak hanya bisa disimpan dalam database, namun juga bisa sebagai file teks yang disimpan di PC Anda. Namun untuk keperluan SMS gateway sepertinya lebih enak menggunakan database sebagai storagenya.

Langkah Keenam (Setting Konfigurasi Untuk SMS Daemon)

Langkah ini dilakukan setelah setting database untuk Gammu. SMS daemon pada Gammu digunakan untuk proses pembacaan otomatis SMS yang diterima lalu disimpan ke database. SMS daemon juga diperlukan untuk keperluan pengiriman SMS. Untuk melakukan setting SMS daemon, bukalah file ‘SMSDRC‘ yang terletak di direktori ‘C:\gammu‘. Bukalah dengan Notepad atau sejenisnya. Bagian yang diubah adalah:

port = diisi nomor port sesuai yang ada di file GAMMURC
connection = diisi jenis connection sesuai yang ada di GAMMURC
service = mysql (diisi dengan ‘mysql’ karena kita akan menggunakan mysql sebagai storage
data SMSnya)
user = diisi user database koneksi ke mysql Anda
password = diisi password koneksi ke mysql Anda
pc = diisi nama host mysql (biasanya localhost)
database = sms (atau sesuai nama database yang tadi kita buat)


Contoh konfigurasi yang ditulis :

1.port = com5:
2.connection = at115200
3.service = mysql

4.user = root
5.password = passwordroot
6.pc = localhost
7.database = sms
Catatan: hilangkan tanda # di depan parameter-parameter di atas bila ada.


Langkah Ketujuh (Membuat Gammu Service)

Langkah ini bertujuan untuk membuat service Gammu di Windows. Dengan dibuatnya service di Windows ini kita bisa lebih mudah menjalankannya tanpa menggunakan perintah tertentu di command prompt. Untuk membuat Gammu service di Windows, ketikkan perintah ini di DOS PROMPT setelah Anda masuk ke folder ‘C:\gammu‘.

1.gammu-smsd -c smsdrc -i

Nah.. bila ada konfirmasi bahwa proses pembuatan service sukses, maka Anda akan melihatservice Gammu muncul pada daftar service yang berjalan di Windows. Service ini bisa dilihat melalui ‘CONTROL PANEL > Administrative Tools > Services’. Nah.. untuk menjalankan service Gammu ini tinggal klik START pada service Gammu tersebut.

Namun bila proses pembuatan service ini gagal, maka silakan cek kembali konfigurasi SMSDRC nya atau mungkin nama databasenya salah, atau bisa juga command yang dituliskan salah.




B. MENGHUBUNGKAN SMS GATEWAY DENGAN WEB ANDA



Langkah Pertama (Persiapan)

Untuk menghubungkan SMS Gateway dengan web anda ada 2 metode yang bisa dilakukan yaitu dengan metode direct connection (IP Publik) ataupun web service (SOAP). Kali ini yang akan kita bahas adalah metode direct connection yang membutuhkan persiapan sebagai berikut :
1. Koneksi internet stabil dan unlimited, bisa menggunakan speedy

2. IP Publik statik dari ISP (untuk hal ini IP publik harus masuk ke router supaya bisa diakses dari internet, untuk lebih jelasnya silahkan baca artikel Membuat server hosting sendiri dengan speedy dan mikrotik dan Setting Mikrotik PPPoE sebagai gateway speedy

3. Mikrotik Router (PC Router/RouterBoard)

Langkah Kedua (Membuat script PHP untuk mengirim SMS)

OK.. sekarang kita akan mencoba membuat script PHP sederhana untuk mengirim pesan SMS yang terintegrasi dengan Gammu ini.


Langkah pertama kita buat form untuk mengirim pesan SMS nya terlebih dahulu.

form_sms.php


1.<form method="post" action="send.php">
2.No. HP Tujuan : <input type="text" name="nohp" value="+62"><br>
3.Pesan : <textarea name="msg"></textarea><br>
4.<input type="submit" name="submit" value="Kirim SMS">
5.</form>

Langkah kedua, kita buat script php untuk mengirim pesannya. send.php
1.<?php
2.$noTujuan = $_POST['nohp'];
3.$message = $_POST['msg'];
4.
5.exec('c:\gammu\gammu-smsd-inject.exe -c c:\gammu\smsdrc EMS '.$noTujuan.' -text
"'.$message.'"');
6.
7.?>

Perintah exec() dalam PHP digunakan untuk menjalankan perintah command DOS dalam hal ini adalah perintah command inject nya Gammu.

Karena command inject Gammu pada script di atas menggunakan format EMS maka memungkinkan kita mengirim SMS dengan jumlah karakter lebih dari 160 buah. Oya… sebelum Anda menjalankan script di atas, pastikan bahwa service Gammu nya telah Anda jalankan, dan HP Anda tercolok ke PC Sekarang… bagaimana bila pengiriman SMS dari script di atas menggunakan query INSERT? Ini dia scriptnya.

send.php

01.<?php
02.mysql_connect("dbhost", "dbuser", "dbpass");
03.mysql_select_db("sms");
04.
05.$noTujuan = $_POST['nohp'];
06.$message = $_POST['msg'];
07.
08.$query = "INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID)
VALUES ('$noTujuan', '$message', 'Gammu')";
09.$hasil = mysql_query($query);

10.if ($hasil) echo "SMS berhasil dikirim";
11.else echo "SMS gagal dikirim";
12.
13.?>


Langkah Ketiga (Mengakses script PHP diatas via internet)

Setelah anda membaca dan mempraktekkan langkah kedua di tahap persiapan anda sudah bisa mengakses form pengiriman SMS anda dari internet, contoh  : bila script PHP diatas pada waktu anda mengaksesnya lewat localhost menggunakan URL  http://localhost/form_sms.php maka untuk mengaksesnya dari internet URL berubah menjadi http://IP_Publik_ISP/form_sms.php. Bila anda ingin URL menggunakan subdomain anda misal http://sms.domainanda.com/form_sms.php, anda tinggal menambahkan A Record di DNS Record hosting anda yang mengarah ke IP Publik dari ISP anda.

Demikianlah Tutorial SMS Gateway  yang saya sampaikan, semoga bermanfaat bagi yang membacanya. Jika ada pertanyaan tentang artikel ini silahkan tinggalkan komentar anda.

Read more
loading...