netbozum
wmaraci reklam

AJAX-MySQL Basit Canlı Sohbet Sistemi

5 Mesajlar 3.162 Okunma
Toplam 5 mesaj ve 3.162 görüntüleme
acebozum
wmaraci reklam

KadirCeyhan KadirCeyhan WM Aracı Kullanıcı
  • Üyelik 23.10.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Öğrenci
  • Konum Denizli
  • Ad Soyad K** C**
  • Mesajlar 689
  • Beğeniler 0 / 203
  • Ticaret 6, (%100)
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.

kişi bu mesajı beğendi.

wmaraci
reklam

enex enex WM Aracı Kullanıcı
  • Üyelik 16.08.2016
  • Yaş/Cinsiyet 28 / E
  • Meslek PHP Developer Novice Jquery
  • Konum Amasya
  • Ad Soyad E** E**
  • Mesajlar 160
  • Beğeniler 0 / 13
  • Ticaret 0, (%0)
güzelmiş bende mesajlaşma sistemi yaptıydım ama ajaxsız
böyle http://prntscr.com/dgdzhm
 

 

SosyalAbi SosyalAbi WM Aracı Kullanıcı
  • Üyelik 12.08.2014
  • Yaş/Cinsiyet 23 / E
  • Meslek Webmaster
  • Konum İstanbul Anadolu
  • Ad Soyad O** G**
  • Mesajlar 571
  • Beğeniler 193 / 143
  • Ticaret 46, (%100)
Güzel çalışma, teşekkürler :)
 

 

SoftwareDeveloper SoftwareDeveloper WM Aracı Kullanıcı
  • Üyelik 18.08.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Bilgisayar Mühendisliği
  • Konum İstanbul Avrupa
  • Ad Soyad E** S**
  • Mesajlar 79
  • Beğeniler 4 / 36
  • Ticaret 1, (%100)
Socket.io ve mongodb kullanılarak daha real-time bir uygulama yapılabilir, socketio kullanması çok kolay gerçekten.

kişi bu mesajı beğendi.

php, java, python - django, nodejs, vuejs, reactjs, angularjs, c# asp.net mvc...
wmaraci
wmaraci

PRODUCTION PRODUCTION Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 21.11.2016
  • Yaş/Cinsiyet 37 / E
  • Meslek Genel Müdür
  • Konum Antalya
  • Ad Soyad B** Ü**
  • Mesajlar 190
  • Beğeniler 369 / 44
  • Ticaret 0, (%0)
Örnek ?
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al