Я сделал этот простой чат-сайт для своего сайта, но я не знаю, как сделать так, чтобы он автоматически обновлялся при каждом отправлении сообщения.
Сайт, который отправляет и распечатывает все сообщения:
<form action="messages.php" method="POST">
<input name="chat_box" /><br>
<input type="submit" value="Send" />
</form><?php
include "messages.txt";
?>
Сайт, который отправляет текстовый ввод в текстовый файл:
<?php
$messages = $_POST["chat_box"];
$handler=fopen("messages.txt", 'a');
fwrite($handler,$_SERVER["REMOTE_ADDR"].":".$messages."<br>");
fclose($handler);
header("Location: chat_box.php");
?>
Может кто-нибудь мне помочь?
Попробуйте этот код:
Это messages.php
:
<?php
$page = $_SERVER['PHP_SELF'];
$sec = "10";
?>
<html>
<head>
<meta http-equiv="refresh" content="<?php echo $sec?>;URL='<?php echo $page?>'">
</head>
<body>
<form action="messages.php" method="POST">
<input name="chat_box" /><br>
<input type="submit" value="Send" />
</form>
<?php
include "messages.txt"; //Uncomment this to check the autorefresh
echo "Auto refresh in 10 second!";
$messages = $_POST["chat_box"];
$handler=fopen("messages.txt", 'a');
fwrite($handler,$_SERVER["REMOTE_ADDR"].":".$messages."<br>");
fclose($handler);
?>
</body>
</html>
Надеюсь, это поможет вам … 🙂
Если вы хотите получать новые сообщения, лучше всего загружать текстовый файл каждые 10 секунд. для этого замените php внизу вашего первого набора кода следующим:
<div id="messages"></div>
<script type="text/javascript">
$(document).ready(function() {
function functionToLoadFile(){
jQuery.get('messages.txt', function(data) {
$("#messages").html(data)
});
}
setInterval(functionToLoadFile, 10000);
});
</script>