PHP ve Ajax ile Live Chat yaparken sayfa yenilenince mesajlar tekrardan veri tabanına gidiyor

filozofunpiri

Decapat
Katılım
13 Temmuz 2022
Mesajlar
117
PHP ve Ajax kullanıyorum.
chat.php sayfasındaki Ajax kodu:

PHP:
function sendMessages() {
            $.ajax({
                type: 'POST',
                url: 'sent_messages.php',
                data: {
                    user_id: user_id,
                    session_name: session_name,
                    session_id: session_id,
                    text: text,
                },
                success: function(response) {
                    if ($('#chat2').html() !== response) {
                        $('#chat2').html(response);
                        keepScrollBarDown();
                    }
                }
            });
        }
    sendMessages();
   


sentMessages.php sayfasından kodlar
<?php
include 'db.php';
$sender_message=$_POST['text'];
$sender_id=$_POST['session_id'];
$receiver_id=$_POST['user_id'];


if($sender_message!=null)
{
    $query = "INSERT INTO messages (sender_id, receiver_id, sender_message) VALUES ('$sender_id', '$receiver_id', '$sender_message')";
    $query2 = mysqli_query($db, $query);
}
 

?>
 
Son düzenleyen: Moderatör:
Evet token deyip mesajlara Id verdim.Sayfayı yenilediğimde mesajları ayrı bir Id tanımlayıp kaydediyor,işe yaramıyor diye
sildim.
 
Silmek yerine işe yarayacak hale getirseniz sorunu çözersiniz. Mesajların ID'si veritabanında saklanacak, ki zaten üzerinde işlem yapacaksanız her halükarda bir ID'si olmalı. Bu ID'de mesaj ile birlikte hem önde hem arkada aynı saklanacak.

ID ile mesaj mevcutsa, hata alırsınız.

Ki zaten gönderilen mesajda ID olmaz, ID'yi veritabanı oluşturacak. Bu şekilde düşünerek ID'li mesajları veritabanına yollamasanız da sorun çözülür.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…