Aplikasi chat dengan PHP dan mysql alurnya seperti ini :
- saat user mendaftar, otomatis php akan mengirimkan data bahwa ada user yang online bermode on ke database sehingga user yang bermode on ini akan tampil di daftar user yang online
- saat user exit user akan otomatis terhapus di database sehingga hilang pada daftar user yang online
cara kerjanya seperti ini:
- saat user mendaftar ke aplikasi chat tentunya kita memerlukan kode php untuk mengirimkan data ke database . cek pada halaman peiksa.php
$q=mysql_query("insert into chat(nama, pesan, waktu, status, situs)values
( '$nama', '$nama baru saja masuk','$waktu','on', '$situs')");
( '$nama', '$nama baru saja masuk','$waktu','on', '$situs')");
code yang berwarna merah adalah kuncinya 'status' merupakan nama salah satu kolom dari table chat kita sedangkan 'on' merupakan tanda atau statusnya yang menandakan user online , data ini dikirim ke database chat bersama-sama data yang lain (nama,pesannya, waktu status ,situs) sehingga masuk ke dalam database
- Sekarang untuk menampilkan user tersebut, kita menggunakan kode php untuk menampilkan nama pada tiap baris yang berstatus 'ON' ,lihat pada halaman daftaruser.php
$km=mysql_query("SELECT * FROM chat where status='on'");
$m = mysql_num_rows($km);
while($row=mysql_fetch_array($km))
{
echo "<a href=".$row['situs']." >".$row['nama']."</a><br>
";}
$m = mysql_num_rows($km);
while($row=mysql_fetch_array($km))
{
echo "<a href=".$row['situs']." >".$row['nama']."</a><br>
";}
- pemanggilan SELECT * FROM chat where status='on' adalah memilih semua data pada table chat tetapi yang berstatus 'on'
- $row=mysql_fetch_array($km) minta izin untuk mengakses dan menampilkan isi dari data menggunakan perintah .$row['nama-kolom'].
- "echo" perintah untuk menampilkan
- kita bubuhkan link <a href> dimana link di tuju, $row['situs'] merupakan alamat situs sang user
- krtikan pada broser localhost/aplikasichat/daftaruser.php maka akan tampil
- Menampilkan data tersebut pada halaman chat, kita menggunkan metode script ajax yang merefres halaman tersebut tiap beberapa detik sekali sehingga, database akan di baca secara realtime otomatis manfaatnya akan langsung memunculkan data baru tanpa harus merefres halaman
Reloadthis merupakan cara kita menampilkan data user yang online menggunakan ajax yang bisa refresh otomatis diantara div tersebut memang kosong karena kita memanggil data tersebut menggunkan javascript yang ber id=reloadthis
kode java script tersebut bernama lihatuser.js
function Ajax(){
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',1000);
}
}
xmlHttp.open("GET","daftaruser.php",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',100);
}
function buka(){
open('formpesan.html','form','menubar=no,width=500,height=400');
}
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',1000);
}
}
xmlHttp.open("GET","daftaruser.php",true);
xmlHttp.send(null);
}
window.onload=function(){
setTimeout('Ajax()',100);
}
function buka(){
open('formpesan.html','form','menubar=no,width=500,height=400');
}
getElementById('ReloadThis'= mendapatkan kode element ber-id= reload this, untuk dapat di tampilkan halaman ("GET","daftaruser.php) Daftaruser.php, dan di set halamannya dengan ajax tiap 100 milisecond .
Halaman lihatuser.js memang berada pada luar halaman maka dari itu kita (kembali ke halaman chat.php)
membubuhkan kode
seperti diatas pada halaman chat.php
- proses logout , lihat halaman chat.php pada kode <div class="logout"><a href="logout.php?op=out">logout</a></div> akan menampilkan kata logout yang akan di arahkan ke halaman logout.php
else if($op=="out"){
$jm=mysql_query("DELETE FROM chat WHERE nama = '$_SESSION[nama]' and status='on'");
$j = mysql_num_rows($jm);
{
unset($_SESSION['nama']);
unset($_SESSION['situs']);
header("location:chat.php");
}}
?>
$jm=mysql_query("DELETE FROM chat WHERE nama = '$_SESSION[nama]' and status='on'");
$j = mysql_num_rows($jm);
{
unset($_SESSION['nama']);
unset($_SESSION['situs']);
header("location:chat.php");
}}
?>
- (merah) pemanggilan ke database dengan php untuk menghapus data yang bernama sesuai dengan season dan mencari nama yang berstatus on untuk di hapus
- (orange) memerintahkan broser untuk tidak lagi mengadopsi sesion nama dan situs
- nah setelah itu user akan kembali di bawa ke login form pada halaman chat.php dan secara otomatis user tersebut akan hilang dari
muka bumidaftar user
4 comments:
bg..
mo nnya nih
gmana cara mengatasi double data pada field dalam tabel.
misalnya saya akan membuat penyewaan sepeda.
penyewa A meminjam sepeda 1 pada jam 08.00 - 10.00
penyewa C meminjam sepeda 2 pada jam 08.00 - 10.00
penyewa B ingin meminjam sepeda 1 pada jam yang sama...
bagaimana cara membatalkan penyimpanan data dari penyewa B y bg????
mhon bntuannya bg...
kok downloadnya gagal?
Ada full code nya gak bg??
Share pleace..
share full codenya donk..
Post a Comment