Так что я делаю чат, и в 14:09 он работал нормально, он отображал сообщения, получал их и хранил их в БД. Он также отображал сохраненные сообщения и мгновенно показывал пользователям сообщения. Однако внезапно он просто перестает показывать все сообщения. Я проверил и сообщения хранятся в БД при отправке. Я не знаю, что такое ошибка, поскольку я не изменил код, чтобы повлиять на него. Это очень помогло бы, если бы вы могли помочь мне в этом! :)Код AJAX перестает работать внезапно
index.php (включает в себя АЯКС JQuery & форма)
<div id="messageSend">
<form action="shout.php" method="post" id="chat">
<textarea rows="8" cols="74" id="Message" name="Message" placeholder="Post messages here."></textarea>
<br/><input type="submit" id="submit" value="Shout!">
</form>
<script>
$('#chat').submit(function(e) {
e.preventDefault();
var form = $('#chat'),
url = form.attr('action'),
Message = $('#Message');
$.post(url, {Message : Message.val()}, function(data) {
$('#messageDisplay').html(data);
$('#Message').empty().val('');
});
setInterval(function() {
// Do something every 2 seconds
{
$.get("data.php").done(function(data) {
$('#messageDisplay').html(data);
});
}
}, 1000);
});
</script>
shout.php (отправить сообщение и добавляет к БД)
<?php
include 'auth.login.php';
include 'pdo.config.php';
if (!isset($_SESSION['Username'])) {
echo '<br/>';
echo '<center>You need to login to post!<br/>';
header("Refresh:2; URL=index.php");
exit();
}
if (!isset($_POST['Message']) || empty($_POST['Message'])) {
echo '<br/>';
echo '<center>Message box empty!<br/>';
exit();
}
$Username = $_SESSION['Username'];
$Message = htmlspecialchars(trim($_POST['Message']));
$insertMessage = $PDO->prepare("INSERT INTO `chatbox` (User, Message) VALUES (?, ?)");
$insertMessage->bindParam(1, $Username, PDO::PARAM_STR);
$insertMessage->bindParam(2, $Message, PDO::PARAM_STR);
$insertMessage->execute();
?>
data.php (файл, который имеет цикл для получение сообщений от БД)
<?php
include 'pdo.config.php';
$chat = $PDO->query("SELECT * FROM `chatbox`");
while($getRow = $chat->fetch(PDO::FETCH_ASSOC)) {
echo '['.date('d/m/Y g:i:s A', strtotime($getRow['SentOn'])).'] '.$getRow['User'].': '.stripslashes($getRow['Message']).'<br/>';
}
?>
Что консоль сказать? – tymeJV
Где вы создаете переменную '$ _SESSION ['Username']'? Может, в этом и проблема. Сессии обычно длится некоторое время, а затем они отбрасываются. –
@tymeJV, На моем локальном сервере он работает нормально, он захватывает данные из файла data.php и отображает его. В Интернете это не так. В conolse один мой локальный сервер он забирает data.php онлайн, это не так. –