AlgoritmaNews Adalah Situs Berita Perkembangan Teknologi Terkini Yang Ter Update Setiap Hari | Mulai Dari Berita Teknoligi, Sains, Perbintangan, NASA, Satelit, Tips Trik Mengatasi Masalah Yang Terjadi Pada Prangkat Teknologi dan Masih Banyak Info Menarik Lainya.
Promo Web Hosting 500mb Bw Unlimited Cuma Rp.50rb Untuk 10 Pendaftar Pertama Order disini

Showing posts with label Ajax. Show all posts
Showing posts with label Ajax. Show all posts

Membuat Aplikasi Chatting Dengan PHP Ajax

Sekarang mari kita membuat aplikasi chatting dengan menggunakan php ajax dan mysql sebagai database. Di sini kita memanfaatkan ajax untuk komunikasi client (browser) ke server. Ajax setiap detik akan melakukan request ke server (tanpa harus refresh). Di sini kita bisa memanfaat fungsi setTimeout() pada javascript. Fungsi setTimeout() berguna untuk me-set timer setiap berapa per milisecond javascript mengeksekusi suatu fungsi, contoh :
setTimeout("ambilPesan()",1000);
Kode di atas berarti, eksekusi fungsi ambilPesan() setiap 1000 milisecond. Mari kita lihat konsep untuk membuat aplikasi chatting:
  1. Kita buat objek ajax yang nantiya bertugas melakukan komunikasi ke server
  2. User memasukkan nama, yang nantinya kita simpan dalam suatu variabel
  3. Ketika user selesai mengetik pesan, masukkan ke dalam database melalui ajax
  4. User, baik kita sendiri atau orang lain, setiap 1 detik akan mengecek ke server, apakah ada pesan baru, jika ada tampilkan.
Sekarang mari kita mulai membuat kode-kodenya
Berikut adah struktur tabel drzchat di database :

1-- 
2-- Table structure for table `drzchat` 
3-- 
4 
5CREATE TABLE `drzchat` ( 
6  `nomor` int(3) NOT NULL auto_increment, 
7  `nama` varchar(20) NOT NULL, 
8  `pesan` varchar(200) NOT NULL, 
9  `waktu` varchar(10) NOT NULL, 
10  PRIMARY KEY  (`nomor`) 
11) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

view plain | print | ?
Pertama-tama mari kita buat halaman untuk chat di browser. drzchat.html


1<html> 
2<head> 
3<title> 
4DRZ Chat 1.0 
5</title> 
6<script> 
7var ajaxku = buatAjax(); 
8var tnama = 0; 
9var pesanakhir = 0; 
10var timer; 
11function taruhNama(){ 
12    if(tnama==0){ 
13        document.getElementById("nama").disabled = "true"
14        tnama = 1; 
15    }else
16        document.getElementById("nama").disabled = ""
17        tnama = 0; 
18    } 
19    ambilPesan(); 
20
21function buatAjax(){ 
22    if(window.XMLHttpRequest){ 
23        return new XMLHttpRequest(); 
24    }else if(window.ActiveXObject){ 
25        return new ActiveXObject("Microsoft.XMLHTTP"); 
26    } 
27
28 
29function ambilPesan(){ 
30    namaku = document.getElementById("nama").value 
31    if(ajaxku.readyState == 4 || ajaxku.readyState == 0){ 
32        ajaxku.open("GET","ambilchat.php?akhir="+pesanakhir+"&nama="+namaku+"&sid="+Math.random(),true); 
33        ajaxku.onreadystatechange = aturAmbilPesan; 
34        ajaxku.send(null); 
35    } 
36
37 
38function aturAmbilPesan(){ 
39    if(ajaxku.readyState == 4){ 
40        var chat_div = document.getElementById("div_chat"); 
41        var data = eval("("+ajaxku.responseText+")"); 
42        for(i=0;i<data.messages.pesan.length;i++){ 
43            chat_div.innerHTML += "<font color=red>"+data.messages.pesan[i].nama+"</font> "
44            chat_div.innerHTML += "<font size=1>("+data.messages.pesan[i].waktu+")</font> "
45            chat_div.innerHTML += " : "+data.messages.pesan[i].teks+"<br>"
46            chat_div.scrollTop = chat_div.scrollHeight; 
47            pesanakhir = data.messages.pesan[i].id; 
48        } 
49    } 
50    timer = setTimeout("ambilPesan()",1000); 
51
52 
53function kirimPesan(){ 
54    pesannya = document.getElementById("pesan").value 
55    namaku = document.getElementById("nama").value 
56    if(pesannya != "" && document.getElementById("nama").value !=""){ 
57        ajaxku.open("GET","ambilchat.php?akhir="+pesanakhir+"&nama="+namaku+"&pesan="+pesannya+"&sid="+Math.random(),true); 
58        ajaxku.onreadystatechange = aturAmbilPesan; 
59        ajaxku.send(null); 
60        document.getElementById("pesan").value = ""
61    }else
62        alert("Nama atau pesan masih kosong"); 
63    } 
64
65 
66function aturKirimPesan(){ 
67    clearInterval(timer); 
68    ambilPesan(); 
69
70function blockSubmit() { 
71    kirimPesan(); 
72    return false; 
73
74</script> 
75</head> 
76<body> 
77Nama : <input type=text name=nama id=nama> 
78<input type=button value=login id=tmbl_login onclick=taruhNama()><p> 
79<div id="div_chat" style="height: 300px; width: 500px; overflow: auto; background-color: lightyellow; border: 1px solid #555555;"
80 
81</div> 
82<form onSubmit="return blockSubmit();"
83Pesan : <input type=text name=pesan id=pesan size=50> 
84<input type=button value="kirim" onclick="kirimPesan()"
85</form> 
86</body> 
87</html> 

view plain | print | ?
Pada kode drzchat.html di atas, setelah user mengisi nama, lalu klik tombol login, maka kita menjalankan fungsi taruhNama(), yang berguna untuk mengunci nama yang sudah diketik sebagai user name di chatting. Setelah itu kita manjalankan fungsi ambilPesan(), yang berfungsi melakukan request ke server apakah ada pesan yang terbaru dari database. Jika ada pesan terbaru maka kita ambil dan taruh di browser dengan menggunakan fungsi aturAmbilPesan().
Apabila kita sudah mengetik pesan, javascript akan menjalankan fungsi kirimPesan(). Untuk mengerti apa itu readyState, onreadystatechange silahkan download tutorial pengenalan ajax di sini.
Pada kode di atas objek ajax melakukan request atau komunikasi dengan file php server, yaitu file ambilchat.php. Berikut kodenya :


1<?php 
2mysql_connect("localhost","root",""); 
3mysql_select_db("test"); 
4 
5$nama = $_GET['nama']; 
6$pesan = $_GET['pesan']; 
7$waktu = date("H:i"); 
8$akhir = $_GET['akhir']; 
9 
10$json = '{"messages": {'
11if($akhir==0){ 
12    $nomor = mysql_query("select nomor from drzchat order by nomor desc limit 1"); 
13    $n = mysql_fetch_array($nomor); 
14    $no = $n['nomor'] + 1; 
15    $json .= '"pesan":[ {'
16    $json .= '"id":"'.$no.'", 
17              "nama":"Admin"
18              "teks":"Selamat datang di chatting room"
19              "waktu":"'.$waktu.'" 
20              }]'; 
21    $masuk = mysql_query("insert into drzchat values(null,'Admin','$nama bergabung dalam chat','$waktu')"); 
22}else
23    if($pesan){ 
24        $masuk = mysql_query("insert into drzchat values(null,'$nama','$pesan','$waktu')"); 
25 
26    } 
27    $query = mysql_query("select * from drzchat where nomor > $akhir"); 
28    $json .= '"pesan":[ '
29    while($x = mysql_fetch_array($query)){ 
30        $json .= '{'
31        $json .= '"id":"'.$x['nomor'].'", 
32                  "nama":"'.htmlspecialchars($x['nama']).'"
33                  "teks":"'.htmlspecialchars($x['pesan']).'"
34                  "waktu":"'.$x['waktu'].'" 
35                  },'; 
36    } 
37    $json = substr($json,0,strlen($json)-1); 
38    $json .= ']'
39
40 
41$json .= '}}'
42echo $json
43?> 

view plain | print | ?
File ambilchat.php mempunya fungsi utama memasukkan pesan ke database dan sekaligus mengecek apakah ada pesan terbaru dengan cara melakukan query "select * from drzchat where nomor > $akhir". Variabel $akhir kita dapat dari variabel yang dikirim oleh objek ajax, yang sebenarnya juga berasal field nomor pada tabel drzchat.
Format data yang dikirim oleh server menggunakan format JSON, silahkan download dan baca tutorial JSON di sini.
Download Source Code


Refrensi

Membuat Sendiri Article Rewriter dengan Ajax

Apa sih article rewriter? Article rewriter adalah semacam program yang menulis ulang suatu tulisan atau artikel dengan kata-kata yang berbeda dari artikel aslinya, sehingga tercipta konten yang sedikit unik. Bagi yang malas buat buat tulisan tapi pengen ngejar dollar dari google adsense, biasanya menggunakan articel rewriter untuk copy paste suatu artikel. Tapi di sini kita akan melihat bagaimana kode untuk membuat kode rewriter sederhana.
Kita akan membuat kode rewriter dengan menggunakan PHP, MySQL dan Ajax jQuery untuk komunikasi data dan menampilkannya. Kita juga akan belajar bagaimana membuat highlight kata-kata yang sudah di rewrite. Untuk jelasnya silahkan lihat Demo Article Rewriter. Dan berikut algoritma dan kodenya:
Algoritma rewriter adalah sebagai berikut:
  1. Membuat textarea untuk teks artikel yang akan di rewrite
  2. Mengambil teks artikel dan mengirimnya melalui ajax
  3. Memproses teks yang dikirim ke server untuk di-rewrite, dengan cara mencari sinonim kata tersebut di database.
  4. Menampilkan hasil rewrite.

Membuat textarea untuk teks artikel yang akan di rewrite


<textarea rows="10" cols="80" name="komentar" id="artikel"></textarea>
<b>Result:</b>
<br>
<img src="ajax-loader.gif" style="display:none" id="loading">
<br>
<!---tempat menampilkan hasil rewrite--->
<div id="re-articel" style="width:650;height:200;border:black 1px solid;
text-align:left;padding:10;overflow:auto">
</div>

Mengambil teks artikel dan mengirimnya melalui ajax


<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script>
$(document).ready(function(){
    $("#tombol").click(function(){
        //menampilkan animasi loading
        $("#loading").show();

        //mengambil teks dari textarea
        var artikel = $("#artikel").val();

        //kirim teks artikel ke server
        $.ajax({
            type: "POST",
            url: "rewriter.php",
            data: "artikel="+artikel,
            success: function(msg){
                //jika sudah dikirim ditampilkan
                $("#re-articel").html(msg);
                $("#loading").hide();
            }
        });
    });

    $("#reset").click(function(){
        $("#re-articel").html("");
    });
});
</script>

Memproses teks yang dikirim ke server untuk di-rewrite, dengan cara mencari sinonim kata tersebut di database.

Pada kode di atas kita mengirim teks artikel ke server untuk diolah oleh kode PHP rewriter.php

<?php
if($_POST['artikel']){
include "koneksi.php";
$artikel = nl2br($_POST['artikel']);

//kita pisahkan kalimat berdasarkan spasi
//untuk mengambil kata-kata
$ar = explode(" ",$artikel);

$hasil = "";
foreach($ar as $value){
    if(!preg_match("/\.|'/",$value)){
        //kita cari kata-kata tersebut di database MySQL
        $cari = mysql_query("select * from sinonim where kata1='$value'");
        $j = mysql_num_rows($cari);
        if($j>0){
            $ka = mysql_fetch_array($cari);
            $hasil = $hasil."<span class='re'>".stripslashes($ka['kata2'])."</span> ";
        }else{
            $cari2 = mysql_query("select * from sinonim where kata2='$value'");
            $j2 = mysql_num_rows($cari2);
            if($j2>0){
                $ka2 = mysql_fetch_array($cari2);
                $hasil = $hasil."<span class='re'>".stripslashes($ka2['kata1'])."</span> ";
            }else{
                $hasil = $hasil.stripslashes($value)." ";
            }
        }
    }else{
        $ka = preg_replace("/\./","",$value);
        $cari = mysql_query("select * from sinonim where kata1='$ka'");
        $j = mysql_num_rows($cari);
        if($j>0){
            $kax = mysql_fetch_array($cari);
            $hasil = $hasil."<span class='re'>".stripslashes($kax['kata2'])."</span>. ";
        }else{
            $hasil = $hasil.stripslashes($ka).". ";
        }
    }
}
echo $hasil;
}
?>

Menampilkan hasil rewrite.


$("#re-articel").html(msg);
Di mana #re-articel adalah tag <div> yang ber ID=re-articel
Untuk kode lengkapnya silahkan download source code.

Refrensi

Code sederhana registrasi pendaftaran dengan AJAX jQuery dan PHP serta aktivasi via email

Pernah mendaftar social networking ? Facebook atau Twitter atau milis-milis dan forum-forum ?? Anda mesti aktifkan account anda lewat email bukan ? apabila anda tidak mengaktifkan,,maka account yang baru saja anda buat tidak akan aktif. Proses tersebut kadang disebut verifikasi account via email yang tentu saja membutuhkan autoresponder email. Bagaimana cara membuatnya ya ?? Berikut ini saya coba share bagaimana membuat codingan seperti tersebut.
Secara logika, mungkin sederhananya seperti ini, di table member, kita kasih status aktif. Status aktif akan menentukan apakah member dapat login atau belum dengan adanya code aktifasi.

Pada gambar diatas, terlihat bahwa ada member yang sudah daftar namun belum melakukan aktivasi. Terlihat bahwa field aktifnya masih 0. Member yg sudah aktif ditandai dengan value field aktif adalah 1.
Untuk pertama kali, jangan lupa setting konfigurasi database hostingan kamu. Lalu import file member.sql.
Bila sudah melakukan settingan db dan import database.
Di dalam folder codingan terdapat file-file terpisah,,bisa liat gambar dibawah ini.

Di folder css hanya berisi code css yang jujur belum mahir banget dengan css, maksain aja dah…berikut codenya :
@charset "utf-8";
.judul {
	font-family: "Courier New", Courier, monospace;
	font-size: 16px;
	font-weight: bold;
	text-align: center;
	color: #0033FF;
}
.author {
	font-family: "Courier New", Courier, monospace;
	font-size: 14px;
	font-weight: normal;
	color: #666666;
	text-align: center;
	width: 220px;
	text-decoration: none;
}
.link_author {
	font-family: "Courier New", Courier, monospace;
	font-size: 12px;
	font-style: italic;
	font-weight: bold;
	color: #666666;
	text-decoration: none;
}

table {
	font-family: "Times New Roman", Times, serif;
	text-align: center;
	font-size: 12px;
	background-position: center center;
	margin-left: 46px;
}

.input_username {
	font-family: "Times New Roman", Times, serif;
	font-size: 12px;
	background-color: #CCCCCC;
	padding-left: 3px;
}

.input_email {
	font-family: "Times New Roman", Times, serif;
	font-size: 12px;
	background-color: #CCCCCC;
	padding-left: 3px;
}

.input_password {
	font-family: "Times New Roman", Times, serif;
	font-size: 12px;
	background-color: #CCCCCC;
	padding-left: 3px;
}

.tampil_info {
	font-family: "Times New Roman", Times, serif;
	font-size: 12px;
	font-weight: normal;
	color: #333333;
	background-color: #E7E8E3;
	text-align: center;
	margin-left: 47px;
	border: thin dashed #CCCCCC;
	clear: right;
	float: left;
	width: 200px;
}

.info_email {
	font-family: "Times New Roman", Times, serif;
	font-size: 12px;
	font-weight: normal;
	color: #333333;
	background-color: #E7E8E3;
	text-align: center;
	margin-left: 47px;
	border: thin dashed #CCCCCC;
	clear: right;
	float: left;
	width: 200px;
}
Trus di folder image cuma ada file loading.gif dimana image ini digunakan untuk loading saat ajax melakukan akses ke database.
Di folder inc ada 5 file :
  • inc.db.php, berisi setingan database aja
    <?php
          $host = "localhost";
    	$user = "root";
    	$pass = "adiputra";
    	$db   = "blog_tes";
    
    	mysql_connect($host,$user,$pass) or die('error : '.mysql_error());
    
    	mysql_select_db($db) or die('error : '.mysql_error());
    ?>
    
  • lib_func.php, kumpulan fungsi-fungsi php seperti fungsi untuk autoresponder,dll.
    <?php
    	include "inc.db.php";
    
    	function secure_input($data){
    		$secure_data = mysql_real_escape_string($data);
    		return $secure_data;
    	}
    
    	function auto_respon($email,$username,$kode){
    		include_once("class.phpmailer.php");
    		$mail         = new PHPMailer();
    		$mail->IsMail();
    		$mail->FromName   = "Admin TokoBukuBekas.Co.Tv"; // silakan isi dengan email kamu..itu hanya sample,, $mail->FromName = "Admin TokoBukuBekas.Co.Tv";
    		$mail->Subject = "Aktifasi Member";
    		$mail->Body = "Terimakasih ".$username." telah mendaftar..<br />Klik link dibawah ini untuk mengaktifkan account anda<br /><br />http://tokobukubekas.co.tv/tutorial/form_daftar/aktifasi.php?kode=$kode";
    		$mail->AddAddress($email);
    		$mail->IsHTML(true);
    		if(!$mail->Send()){
    			return FALSE;
    		}else{
    			return TRUE;
    		}
    	}
    
    	function cek_kode_aktifasi($kode){
    		$sql = "select * from member where code='$kode' and aktif=1";
    		$res = mysql_query($sql);
    		$data = mysql_fetch_array($res);
    		$cek_ada = mysql_num_rows($res);
    
    		if($cek_ada == 0){
    			$cek = 1; # member belum aktifasi
    		}else{
    			$cek = 0; # member sudah aktifasi
    		}
    
    		return cek;
    	}
    ?>
    
  • Class_phpmailer.php, Class_smtp.php dan Class_pop3.php adalah class-class untuk melakukan autoresponder. Saya dapatkan di phpclasses.org
Di folder js terdapat code-code jquery untuk settingan ajax dan validasi lainnya.
  • js_form_daftar.js : berisi code jQuery untuk form daftar (index.php)
    $(document).ready(function(){
    	$(".tampil_info").hide();
    	$('.loading').hide();
    });
    
    function aksi_daftar(){
    
    	$(".tampil_info").fadeOut('slow');
    
    	$('.loading').show();
    
    	var cek = cek_kosong();
    
    	var email = $(".input_email").val();
    
    	if(cek_kosong()==1){
    		$('.loading').hide();
    		$(".tampil_info").html("maaf, data mesti diisi semua");
    		$(".tampil_info").fadeIn('slow');
    	}else if(cek_email(email)==1){
    		$('.loading').hide();
    		$(".tampil_info").html("maaf, email anda tidak valid");
    		$(".tampil_info").fadeIn('slow');
    	}else{
    		var username 	= $(".input_username").val();
    		var email 		= $(".input_email").val();
    		var password 	= $(".input_password").val();
    		var input_data = "username="+username+"&email="+email+"&password="+password;
    
    		//alert(username+' - '+email+' - '+password);
    
    		$.ajax({
    			url:"proses.php",
    			type:"POST",
    			data:input_data,
    			success:function(data){
    				$('.loading').hide();
    				$(".tampil_info").html(data);
    				$(".tampil_info").fadeIn('slow');
    				//alert('ada');
    			}
    		});
    	}
    
    	return false;
    }
    
    function cek_kosong(){
    	var cek;
    	$(function(){
    
    		data_username = $(".input_username").val().length;
    		data_email = $(".input_email").val().length;
    		data_password = $(".input_password").val().length;
    
    		if((data_username<1) || (data_email)<1 || (data_password<1)){
    			cek = 1;
    		}else{
    			cek = 0;
    		}
    
    	});
    
    	return cek;
    }
    
    function cek_email(data){
    	var regex_email= new RegExp(/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]+$/);
    
    	isi_email = data;
    
    	if(regex_email.test(isi_email)){
    		return 0;
    	}else{
    		return 1;
    	}
    }
    
  • js_form_login.js : berisi code jQuery untuk form login(login.php)
  • $(document).ready(function(){
    	$(".tampil_info").hide();
    	$('.loading').hide();
    });
    
    function aksi_daftar(){
    
    	$(".tampil_info").fadeOut('slow');
    
    	$('.loading').show();
    
    	var cek = cek_kosong();
    
    	var email = $(".input_email").val();
    
    	if(cek_kosong()==1){
    		$('.loading').hide();
    		$(".tampil_info").html("maaf, data mesti diisi semua");
    		$(".tampil_info").fadeIn('slow');
    	}else{
    		var username 	= $(".input_username").val();
    		var password 	= $(".input_password").val();
    		var input_data = "username="+username+"&password="+password;
    
    		//alert(username+' - '+email+' - '+password);
    
    		$.ajax({
    			url:"proses_login.php",
    			type:"POST",
    			data:input_data,
    			success:function(data){
    				$('.loading').hide();
    				$(".tampil_info").html(data);
    				$(".tampil_info").fadeIn('slow');
    				//alert('ada');
    			}
    		});
    	}
    
    	return false;
    }
    
    function cek_kosong(){
    	var cek;
    	$(function(){
    
    		data_username = $(".input_username").val().length;
    		data_password = $(".input_password").val().length;
    
    		if((data_username<1) || (data_password<1)){
    			cek = 1;
    		}else{
    			cek = 0;
    		}
    
    	});
    
    	return cek;
    }
    
Awalnya saya arahkan terlebih dahulu untuk melakukan pendaftaran member baru. Lihat index.php :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tutorial Form  Registrasi</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/js_form_daftar.js"></script>
<body>
<div class="judul">Tutorial Registrasi-Login Form Dengan Ajax-jQuery dan Aktifasi Email</div>
<div class="author">Author : <a href="http://www.terusbelajar.wordpress.com" class="link_author">Adiputra</a></div>
<form action="" method="post" name="form_reg">
	<table width="200" border="0" cellspacing="2" cellpadding="2">
      <tr>
        <td>Username</td>
        <td>:</td>
        <td><input name="username" type="text" class="input_username" /></td>
      </tr>
      <tr>
        <td>Email</td>
        <td>:</td>
        <td>
        	<input name="email" type="text" class="input_email"/>
        </td>
      </tr>
      <tr>
        <td>Password</td>
        <td>:</td>
        <td><input name="password" type="password" class="input_password" /></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" class='tombol' value="Daftar" onclick="return aksi_daftar();"/></td>
      </tr>
	</table>

</form>
<div class="loading">
  <img src='image/loading.gif' />
</div>
<div class="tampil_info">

</div>
</body>
</html>
Index.php ini memanggil jquery-1.4.2.min.js, jadi tolong sesuaikan pula pathnya dengan folder kamu (maaf tidak disertakan di donlotan, jadi donlot heula nyak), juga memanggil file js_form_daftar.js dimana settingan validasi dan ajax dengan jquery. Di dalam file js_form_daftar.js terdapat code ajax :
          $.ajax({
			url:"proses.php",
			type:"POST",
			data:input_data,
			success:function(data){
				$('.loading').hide();
				$(".tampil_info").html(data);
				$(".tampil_info").fadeIn('slow');
				//alert('ada');
			}
		});
Terlihat di code tersebut memanggil file proses.php yang berisi query ke database :
<?php
	include "inc/inc.db.php";
	include "inc/lib_func.php";

	$username = secure_input($_POST['username']);
	$email = secure_input($_POST['email']);
	$password = md5(secure_input($_POST['password']));

	$kode = rand(11111,99999);

	$sql = "insert into member values ('','$username','$email','$password','$kode','0')";
	$res = mysql_query($sql);

	if($res){
		//echo "berhasil query";
		if(auto_respon($email,$username,$kode)){
			echo "Silahkan melihat email anda untuk mengaktifkan account anda<br >";
			echo "Apabila tidak ditemukan balasan ke inbox email Anda, silahkan cek inbox spam email Anda...";
		}else{
			echo "Gagal mengirim aktifasi email";
		}
	}else{
		echo "Gagal melakukan query";
	}

?>
Sampai sini adalah proses pendaftaran, lalu dengan code file proses.php ini pula, code aktifasi di kirim melalui email responder melalui email yang sudah didaftarkan. Sekarang bisa kita cek, apakah data aktifasi sudah ke kirim via email atau belum.


Untuk email yahoo,,cek di kotak Spamnya, kalau di kotak Inbox tidak ada. kenapa ya ???
Lihat terdapat link di kedua email yang saya coba,,lalu liat pula bahwa link tersebut mengarah ke aktifasi.php yang isinya hanya codingan untuk mengubah status aktif member. Berikut codenya :
<?php
	include "inc/inc.db.php";
	include "inc/lib_func.php";

	$kode = secure_input($_GET['kode']);
	//echo $kode."<br />";

	$cek = cek_kode_aktifasi($kode);
	//echo $cek."<br />";

	if($cek == 1){
		$sql = "update member set aktif=1 where code = '$kode'";
		mysql_query($sql);
		echo "Terimakasih anda telah melakukan aktifasi account anda <br />";
		echo "Untuk login silahkan anda ke halaman <a href='http://tokobukubekas.co.tv/tutorial/form_daftar/login.php'>[ login ]</a>";
	}else{
		echo "Account anda telah aktif";
	}
?>
File ini hanya untuk mengubah status aktif dari member. Bila berhasil, status aktif bernilai 1. Sampai sini, kita selesai mengaktifkan member dengan kode aktifasi.
Kita coba untuk login (login.php) :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Tutorial Form  Registrasi Login</title>
<link href="css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/js_form_login.js"></script>
<body>
<div class="judul">Tutorial Registrasi-Login Form Dengan Ajax-jQuery-PHP dan Aktifasi Email</div>
<div class="author">Author : <a href="http://www.terusbelajar.wordpress.com" class="link_author">Adiputra</a></div>
<form action="" method="post" name="form_reg">
	<table width="200" border="0" cellspacing="2" cellpadding="2">
      <tr>
        <td>Username</td>
        <td>:</td>
        <td><input name="username" type="text" class="input_username" /></td>
      </tr>
      <tr>
        <td>Password</td>
        <td>:</td>
        <td><input name="password" type="password" class="input_password"/></td>
      </tr>
      <tr>
        <td colspan="2"><input type="submit" class='tombol' value="Login" onclick="return aksi_daftar();"/></td>
      </tr>
	</table>

</form>
<div class="loading">
  <img src='image/loading.gif' />
</div>
<div class="tampil_info">

</div>
</body>
</html>
Proses login berisi validasi baik dari validasi username, validasi password, dan validasi status aktifnya. Berikut kode-nya (proses_login.php):
<?php
	include "inc/inc.db.php";
	include "inc/lib_func.php";

	$username = secure_input($_POST['username']);
	$password = md5(secure_input($_POST['password']));

	$sql = "select * from member where username = '$username'";
	$res = mysql_query($sql);
	$jml = mysql_num_rows($res);

	if($jml==0){
		echo "Username tidak dikenal, silahkan mendaftar";
	}else{
		while($data = mysql_fetch_assoc($res)){

			$pass_db = $data['password'];

			if($pass_db != $password){
				echo "Password Anda salah, silahkan ulangi..";
			}else{

				$aktif = $data['aktif'];
				$email = $data['email'];

				if($aktif == 0){
					echo "Anda belum melakukan aktifasi via email..<br />Silahkan cek email Anda <br />[ ".$email." ]";
				}else{
					echo "Anda telah login :) ";
				}

			}

		}
	}

?>
Dimana file ini dipanggil dari file js_form_login.js dengan ajaxnya jquery :
              $.ajax({
			url:"proses_login.php",
			type:"POST",
			data:input_data,
			success:function(data){
				$('.loading').hide();
				$(".tampil_info").html(data);
				$(".tampil_info").fadeIn('slow');
				//alert('ada');
			}
		});
Sampai sini, selesai,,
Demo dan file-filenya bisa dicomot di bawah ini..
maaf klu demonya agak berat,,karena maklum pake hostingan yg gratisan…:)
[ Demo ] [ Download ]
Moda ada manfaatnya ya dan mohon koreksinya…thanks,,


Refrensi

Loading..

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More