<?php
$rs = mysql_query("SELECT * FROM users WHERE id='$_SESSION[user_id]'");
while ($row= mysql_fetch_array($rs))
{
$starter= $row['id'];
$user_name= $row['user_name'];
}
$starterID=$starter;
$companyID=$_GET['id'];
$input = $_POST['message'];
date_default_timezone_set('Europe/Helsinki');
$timestamp = date('h:i', time());
$file = $companyID." and ".$starterID.".txt";
if (file_exists($file)) {
$file = $companyID." and ".$starterID.".txt";
} else {
$file = $starterID." and ".$companyID.".txt";
}
$current = file_get_contents($file);
$current.= "<b>$user_name</b> <br> $input $timestamp\n<br>";
if(isset($_POST['message'])){
file_put_contents($file, $current);
}
echo $current;
?>
<form action="" method="post">
<input type="text" name="message" autocomplete="off">
<input type="submit">
</form>
Так что это мой очень простой чат между двумя зарегистрированными пользователями.Обновление страницы представляет мою форму
Когда пользователь с ID 154 начинает разговор с ID 156, создается файл 154
и 156.txt
. В этом файле хранятся все сообщения.
Моя проблема заключается в следующем: когда, скажем, пользователь 154 пишет сообщение и отправляет его, нажимая кнопку отправки, страница обновляется, и сообщение сохраняется в файле, а также печатается. После этого поле ввода очищается, но если пользователи обновляют страницу, то одно и то же сообщение сохраняется и печатается снова.
Что делать, чтобы предотвратить повторное обновление страницы?
вы можете проверить последние сообщения, если это sa меня или нет. Если же то же самое, не выполняйте никаких действий. – Khushboo
это будет происходить каждый раз, когда вы обновляете предыдущий контент, в результате ваш 'if (isset ($ _ POST ['message']))' выполняет и сохраняет содержимое. Используйте предложение @Apul Gupta – Ronser
'unset ($ _POST) 'в последнем скрипте. –