У меня есть страница, где я хочу сохранить значение из файла, обновленного все время.setTimeout перестает работать
У меня есть сценарий, сохраняющий некоторые данные для просмотра в Интернете в txt-файле, а затем я хочу показать эти данные в Интернете. Данные в текстовом файле обновляются каждые 20 секунд.
Он работает хорошо, как и раньше, через 3 минуты или около того, после чего страница останавливается. Есть идеи, почему это происходит?
function updatepot(elementid) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById(elementid).innerHTML = this.responseText;
}
};
xmlhttp.open("GET", "../readData.php?q=" + elementid, true);
xmlhttp.send();
}
function updatePots()
{
updatepot("pot0");
}
function keeprunning()
{
setTimeout(updatePots, 1000);
keeprunning();
}
<?php
// get the q parameter from URL
$file = $_REQUEST["q"] . ".txt";
$myfile = fopen("potData/".$file, "r") or die("Unable to open file!");
$myData;
while(!feof($myfile)) {
$myData = $myData . fgets($myfile);
}
fclose($myfile);
echo $myData;
?>
'fopen (" potData /".$ file, "r") 'Кстати, это уязвимость безопасности. '$ file' может содержать' ..', что означает поиск каталога, поэтому злоумышленник не ограничивается чтением файлов в каталоге 'potData'. Они могут читать любой файл '.txt' на диске, к которому имеет доступ читатель PHP, если они могут угадать относительный путь к файлу. –
Хорошая точка. Я добавил все определенные пути к массиву в php-коде, а затем проверяю, содержит ли этот массив $ file – Jacob