actionscript — Как сделать автоматическое обновление страницы каждую минуту в переполнении стека

Я хочу, чтобы мой сайт обновлял страницу каждую минуту, например: 60 с / 1 мин. У меня есть индекс для кода. На самом деле я создаю дом, который получил сообщение от участника, поэтому панель администратора может просматривать входящие сообщения каждую минуту. Кто-нибудь может дать какую-то документацию или пример, чтобы сделать это с помощью PHP ???
Пожалуйста, не Javascript, ни AJAX, спасибо

<?php
header("Refresh: 60");
session_start();
include "conn.php";
$koneksi=open_connection();

if (isset($_SESSION['id']))
{
$id=$_SESSION['id'];
$level = $_SESSION['level'];
$username = $_SESSION['username'];
}else{
echo'<script>document.location.href="index.php?status=forbidden"</script>';
}

require_once('topbar.php');



require_once('sidebar.php');
$page=(isset ($_GET['page']))? $_GET['page'] : 'main';
switch($page){
case 'data':include "halaman/data.php";
break;
case 'main':default: include 'beranda.php';
}
require_once('footer.php');
?>

0

Решение

Вы можете обновить страницу, используя это:
header("Refresh: 60");
Но убедитесь, что вы поставили это перед любым выводом, а это означает, что вы не можете написать даже пространство перед вашим php кодом:

<?php
session_start();
header("Refresh: 60");
include "conn.php";
$koneksi=open_connection();

if (isset($_SESSION['id']))
{
$id=$_SESSION['id'];
$level = $_SESSION['level'];
$username = $_SESSION['username'];
}else{
echo'<script>document.location.href="index.php?status=forbidden"</script>';
}

require_once('topbar.php');

//**I want to put "auto refresh page" here**

require_once('sidebar.php');
$page=(isset ($_GET['page']))? $_GET['page'] : 'main';
switch($page){
case 'data':include "halaman/data.php";
break;
case 'main':default: include 'beranda.php';
}
require_once('footer.php');
?>
0

Другие решения

Ты не можешь PHP заканчивает свою работу, когда содержимое страницы отправляется в браузер. И это не может повлиять на стороне клиента (браузер). Вы можете использовать JavaScript для этого, использовать вызовы Ajax и setInterval() для этого (как упомянуто в комментарии выше). Просто создайте отдельную конечную точку, к которой вы будете обращаться за новой информацией каждую минуту.

1

Хотя вы приняли один ответ, я хотел бы рассказать вам еще один способ сделать это. Вы сказали, что вам нужно отображать сообщения, отправленные членами вашего сайта для администратора, не так ли? Вы не можете использовать PHP в одиночку. По крайней мере, это не очень элегантно. Возможно, вы захотите взглянуть на HTML5 серверные события. Когда в базе данных появляется новое сообщение, вы можете автоматически отправить его на веб-страницу администратора, не перезагружая его.

Код для этой работы будет включать как JavaScript, так и PHP. Вот грубый пример:

В вашем скрипте тега веб-страницы откройте соединение с сервером следующим образом:

var messageEvent = new EventSource("some/relative/path/blah blah/message_updates.php");
//onopen, onmessage and onerror and different events that can occur
messageEvent.onmessage = function(event) {
//Your logic to display the received data to frontend goes here. Example:
//document.getElementById("messages").innerHTML += event.data;
//if event.data is a JSON, then parse it and do stuff
};

Теперь поток на сервер остается открытым, и любые новые сообщения будут отправлены клиенту немедленно. Но перед этим нужно поставить свою логику PHP. Так..

В вашем message_updates.php файл:

 <?php
//Content-Type should compulsorily be text/event-stream
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

//write whatever logic you like to check the database for new messages here
$message=your_own_logic();
//$message should better be a JSON, like {"user":"dopedude","message":"hello"} etc.
echo "data: $message";
//note that the messages should start with "data: ".
//In the client, this "data: " will be omitted automatically
?>

Я оставлю вас с некоторыми ссылками, чтобы продолжить:

Документы Mozilla

w3schools

PHP-библиотека для событий, отправляемых сервером (необязательно, но рекомендуется)

0
По вопросам рекламы [email protected]