Arkadaşlar tamamen çok basit bir sistemi sizlerle paylaşmak istiyorum. Belki kafanızda sistemin oturmasını sağlar ve dahada geliştirip kullanırsınız.

Resimler :

http://i.hizliresim.com/LZgd7J.png

http://i.hizliresim.com/l3rBYk.png

Localhost üzerinde nasıl kullanılacağını anlatayım ;


* Localhostunuzda (htdocs yada www içinde) chat adında bir klasör oluşturun

* ajax.php ve chat.php dosyaları oluşturun

1 - Yeni bir veritabanı oluşturun. [Ajax.php mysql bağlantısına veritabanını yazın]

** Veritabanını içine chat_history olarak bir tablo oluşturun [UTF8 general_ci]

2 - Tablo Yapısı

  • id (INT, Auto Increment, Primary Key)

  • Kime (TEXT)

  • Kimden (TEXT)

  • Mesaj (TEXT)

  • Tarih (TEXT)



3 - Kullanım linki ;

http://localhost/chat/chat.php?t=a&f=b // b kişisi olarak a'ya yazarsınız.
http://localhost/chat/chat.php?t=b&f=a // a kişisi olarak b'ye yazarsınız.

4 - Geçmiş sohbetleri sayfa yüklenirken otomatik yükler.

5 - Her 3 saniyede bir yeni mesaj varsa ekranı günceller.

6 - Türkçe kodlama, anlaşılabilir kod yapısı. Tamamen basit bir eğitim olarak düşünün.

** Herhangi bir sıkıntı olursa konu altına yorum atmaktan çekinmeyin **


ajax.php

$Bağlan = mysqli_connect('localhost','root','','test');
if($_POST['a'] == "yeni"){
$Kime = @$_POST['kime']; $Kimden = @$_POST['kimden']; $Mesaj = @$_POST['mesaj'];
if($Kime != '' && $Kimden != '' && $Mesaj != ''){
$Eski = strip_tags($Mesaj);
$Kime = mysqli_real_escape_string($Bağlan, $Kime);
$Kimden = mysqli_real_escape_string($Bağlan, $Kimden);
$Mesaj = mysqli_real_escape_string($Bağlan, $Mesaj);
$Kime = strip_tags($Kime);
$Kimden = strip_tags($Kimden);
$Mesaj = strip_tags($Mesaj);
$Tarih = date("d/m/Y H:i:s");
$Sorgu = "INSERT INTO chat_history (Kime,Kimden,Mesaj,Tarih) VALUES ('$Kime','$Kimden','$Mesaj','$Tarih')";
$Kaydet = mysqli_query($Bağlan,$Sorgu);
if($Kaydet){
$Tarih = explode(' ', $Tarih)[1];
echo '

Ben : '.$Eski.' ('.$Tarih.')

';
echo '';
}else{
echo '
[System] : Mesajınız İletilemedi ! '.mysqli_error($Bağlan);
}
}
}
elseif ($_POST['a'] == "eski"){
$Kime = @$_POST['kime']; $Kimden = @$_POST['kimden'];
if($Kime != '' && $Kimden != '' ){
$Sorgu = "SELECT * FROM chat_history WHERE (Kime = '$Kime' and Kimden = '$Kimden') or (Kime = '$Kimden' and Kimden = '$Kime') ORDER BY id";
$Yükle = mysqli_query($Bağlan,$Sorgu);
if(mysqli_affected_rows($Bağlan)){
$i = 1;
$Sayı = mysqli_num_rows($Yükle);
while($X = mysqli_fetch_array($Yükle)){
$X['Tarih'] = explode(' ', $X['Tarih'])[1];
if($X['Kimden'] == $Kimden){
echo '

Ben : '.$X['Mesaj'].' ('.$X['Tarih'].')

';
}else{
echo '

'.$X['Kimden'].' : '.$X['Mesaj'].' ('.$X['Tarih'].')

';
}
if ($i == $Sayı){
echo '';
}
$i++;
}
}
}
}
elseif ($_POST['a'] == "guncelle"){
$Kime = @$_POST['kime']; $Kimden = @$_POST['kimden']; $SonMesaj = @$_POST['sonmesaj'];
if($Kime != '' && $Kimden != ''){
$Sorgu = "SELECT * FROM chat_history WHERE (kime = '$Kime' and kimden = '$Kimden') or (kime = '$Kimden' and kimden = '$Kime') ORDER BY id DESC";
$Yükle = mysqli_query($Bağlan,$Sorgu);
if(mysqli_affected_rows($Bağlan)){
$SonPST = explode(':', $SonMesaj)[1];
$SQLSon = mysqli_fetch_array($Yükle)['id'];
if($SonPST != $SQLSon){
$Sorgu = "SELECT * FROM chat_history WHERE id > '$SonPST' AND id <='$SQLSon' AND (Kime = '$Kime' or Kime = '$Kimden') AND (Kimden = '$Kime' or Kimden = '$Kimden') ORDER BY id";
$Yükle = mysqli_query($Bağlan,$Sorgu);
if(mysqli_affected_rows($Bağlan)){
$i = 1;
$Sayı = mysqli_num_rows($Yükle);
while($X = mysqli_fetch_array($Yükle)){
$X['Tarih'] = explode(' ', $X['Tarih'])[1];
if($X['Kimden'] == $Kimden){
echo '

Ben : '.$X['Mesaj'].' ('.$X['Tarih'].')

';
}else{
echo '

'.$X['Kimden'].' : '.$X['Mesaj'].' ('.$X['Tarih'].')

';
}
if ($i == $Sayı){
echo '';
}
$i++;
}
}
}
}
}
}
?>


chat.php


<script></script>










<script>
var Last = "";
var Kime = "";
var Kimden = "";
function Yukle(){
$.ajax({
method: "POST",
url: "ajax.php",
data: {
"a" : "eski",
"kime" : Kime,
"kimden" : Kimden
},
success: function(Cevap) {
$("#LastID_Message").remove();
$("#Chat").append(Cevap).delay(1000).scrollTop($('#Chat')[0].scrollHeight);
}
});

}
function Guncelle(){
Last = $("#LastID_Message").text();
$.ajax({
method: "POST",
url: "ajax.php",
data: {
"a" : "guncelle",
"kime" : Kime,
"kimden" : Kimden,
"sonmesaj" : Last
},
success: function(Cevap) {
if(Cevap != ''){
$("#LastID_Message").remove();
$("#Chat").append(Cevap).delay(1000).scrollTop($('#Chat')[0].scrollHeight);
}
}
});
}
function Gonder() {
Mesaj = $("#mesaj").val();
$("#mesaj").val("");
if (Kime != '' && Kimden != '' && Mesaj != ''){
$.ajax({
method: "POST",
url: "ajax.php",
data: {
"a" : "yeni",
"kime" : Kime,
"kimden" : Kimden,
"mesaj" : Mesaj
},
success: function(Cevap) {
$("#LastID_Message").remove();
$("#Chat").append(Cevap).delay(1000).scrollTop($('#Chat')[0].scrollHeight);
}
});
}
}
$(function() {
Yukle();
$("#gonder").click(function() {
Gonder();
});
setInterval(Guncelle, 3000);
});
</script>


Dipnot: Çok profesyonel veya hatasız bir sistem demiyorum. Sadece belki bir yardımı olur diye paylaşmak istedim. Tamamen bana ait.