如何在 PHP 中每分钟自动刷新页面
How to make auto refreshing page every minute in PHP
我想让我的网站每分钟刷新一次页面,例如:60 秒/1min.I 有放置代码的索引。实际上,我创建了一个接收来自成员的消息的主页,因此管理仪表板可以每隔 minutes.Can 查看收件箱,有人提供一些文档或示例来使用 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');
?>
你不能。 PHP 当页面内容发送到浏览器时结束它的工作。而且它不会影响客户端(浏览器)。您可以为此使用 JavaScript,为此使用 Ajax 调用和 setInterval()
(如上面的评论所述)。只需创建单独的端点,您将每分钟向其请求新信息。
您可以使用以下方法刷新页面:
header("Refresh: 60");
但是确保你把它放在任何输出之前,这意味着你不能在你的 php 代码之前写一个 space:
<?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');
?>
虽然你接受了一个答案,但我想告诉你另一种方法。您说您需要显示网站成员发送给管理员的消息,对吗?您不能单独使用 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
?>
我会留下一些链接供您继续:
像这样简单的步骤,
<!DOCTYPE html>
<html>
<head>
<title>Autorefresh Browser using jquery</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function() {
startRefresh();
});
function startRefresh() {
setTimeout(startRefresh,100);
$.get('text.html', function(data) {
$('#viewHere').html(data);
});
}
</script>
</head>
<body>
<div id="viewHere"></div>
</body>
</html>
完整教程的视频https://youtu.be/Q907KyXcFHc
我想让我的网站每分钟刷新一次页面,例如:60 秒/1min.I 有放置代码的索引。实际上,我创建了一个接收来自成员的消息的主页,因此管理仪表板可以每隔 minutes.Can 查看收件箱,有人提供一些文档或示例来使用 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');
?>
你不能。 PHP 当页面内容发送到浏览器时结束它的工作。而且它不会影响客户端(浏览器)。您可以为此使用 JavaScript,为此使用 Ajax 调用和 setInterval()
(如上面的评论所述)。只需创建单独的端点,您将每分钟向其请求新信息。
您可以使用以下方法刷新页面:
header("Refresh: 60");
但是确保你把它放在任何输出之前,这意味着你不能在你的 php 代码之前写一个 space:
<?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');
?>
虽然你接受了一个答案,但我想告诉你另一种方法。您说您需要显示网站成员发送给管理员的消息,对吗?您不能单独使用 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
?>
我会留下一些链接供您继续:
像这样简单的步骤,
<!DOCTYPE html>
<html>
<head>
<title>Autorefresh Browser using jquery</title>
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(function() {
startRefresh();
});
function startRefresh() {
setTimeout(startRefresh,100);
$.get('text.html', function(data) {
$('#viewHere').html(data);
});
}
</script>
</head>
<body>
<div id="viewHere"></div>
</body>
</html>
完整教程的视频https://youtu.be/Q907KyXcFHc