我试图制作一些php消息发送者和接收者页面。 来自" Admin.php"页面,管理员可以向网站访问者发送消息。 " receiver.php"页面是访问者的收件箱。 这是代码: admin.php的:
<form method="post" action="sender.php">
<input type="text" name="message">
<input type="submit" value="Submit">
</form>
Sender.php:
<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');
$message = $POST["message"];
echo "data: {$message}\n\n";
flush();
?>
Receiver.php:
<!DOCTYPE html>
<html>
<body>
<h1>Getting server updates</h1>
<div id="result"></div>
<script>
if(typeof(EventSource) !== "undefined") {
var source = new EventSource("sender.php");
source.onmessage = function(event) {
document.getElementById("result").innerHTML += event.data + "<br>";
};
} else {
document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events...";
}
</script>
</body>
</html>
为什么这不起作用?
答案 0 :(得分:1)
问题是你试图用“sender.php”做两件事。
从管理表单中,您需要提交一个将存储消息的php脚本放在某种数据库中。
然后在“receiver.php”中,您需要连接到另一个PHP脚本,该脚本的作用是继续轮询该数据库以查找新条目,当它看到它时应将其发送到客户端。后一个PHP脚本将在无限循环中运行。