Здесь таблица базы данных, куда я вставляю чаты.
Я использую сеанс пользователя, чтобы определить отправитель , и использую метод get для приемника и сохранение отправителя и получателя в $ _SESSION ['user'] и $ _SESSION ['receive_user'].Когда я показываю чаты, я загружаю их с помощью ajax из другого php-файла.В этом php-файле я получаю значения sender и receive этими двумя сессиями $ _SESSION ['user'] и $ _SESSION ['receive_user'].и используя следующий код для отображения
<?php
session_start();
$user = $_SESSION['user'];
$receiver_user = $_SESSION['receiver_user'];
$m_query = "SELECT * FROM pm WHERE (sender='$user' AND receiver = '$receiver_user') OR (receiver ='$user' AND sender = '$receiver_user') ORDER BY timestamp DESC;";
$m_run = mysqli_query($con, $m_query);
if(mysqli_num_rows($m_run)>0){
while($m_row=mysqli_fetch_array($m_run)){
$message = $m_row['message'];
$user1 = $m_row['sender'];
$user2 = $m_row['receiver'];
$time = $m_row['timestamp'];
if($user1==$user){
?>
<li class="chat1"><h5 style=""><?php echo $us_name; ?>: <b><?php echo $message; ?></b></h5></li>
<?php
}
else{
?>
<li class="chat2"><h5 style=""><?php echo $receiver_name ; ?>: <b><?php echo $message; ?></b></h5></li>
<?php
}
}
}
?>
Здесь значение receive сохраняется в $ _SESSION ['receive_user'], где я могу сохранить только одно значение.Но когда пользователь пытается отправить сообщение двум или более разным людям одновременно, используя разные вкладки одного и того же браузера, он показывает одно и то же сообщение на каждой вкладке.потому что $ _SESSION ['receive_user'] может сохранить только одно значение.Например, если A хочет отправить сообщение на B , C , D одновременно, используя разные вкладки браузера, $ _SESSION['receive_user'] становится либо B или C , либо D , поэтому на всех вкладках браузера отображается одно и то же сообщение либо B или C или D .
, если $ _SESSION ['receive_user'] = "B", то отображается сообщение между A и B во всех вкладках.Теперь я хочу, чтобы вы помогли мне решить эту проблему по-другому.