我有一个显示聊天框的主文档。我想要的是当有人发布新消息时,聊天框会在每个人的屏幕上刷新。
我尝试了很多方法,包括睡眠定时器和调用然后调用睡眠并调用的新函数,但这只会生成相同或不同数据的无穷无尽的行,使得表单无法使用直到出现错误。
这是我的代码。
<?php
// set error reporting level
if (version_compare(phpversion(), "5.3.0", ">=") == 1)
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
else
error_reporting(E_ALL & ~E_NOTICE);
require_once('inc/login.inc.php');
require_once('inc/chat.inc.php');
// initialization of login system and generation code
$oSimpleLoginSystem = new SimpleLoginSystem();
$oSimpleChat = new SimpleChat();
// draw login box
echo $oSimpleLoginSystem->getLoginBox();
// draw chat application
$sChatResult = '<font color="0x99000">
<a href="Register_form.html">New Account</a><br>
login to send a message<br>
or register for a new account</font>';
if ($_COOKIE['member_name'] && $_COOKIE['member_pass'])
{
if ($oSimpleLoginSystem->check_login($_COOKIE['member_name'], $_COOKIE['member_pass'])) {
$sChatResult = "";
if($oSimpleLoginSystem->check_privledges($_COOKIE['member_name']) >= 2)
{
$sChatResult .= "<br>privledge check Working<br>";
}
$sChatResult .= "<form action=$_SERVER[PHP_SELF] method='post'>
<input type='hidden' name='foo' value='<?= $foo ?>' />
<input type='submit' name='submit' value='Refresh Messages' />
</form>";
$sChatResult .= $oSimpleChat->acceptMessages();
$sChatResult .= "<br><br>";
$sChatResult .= $oSimpleChat->getMessages();
}
}
echo $sChatResult;
?>
答案 0 :(得分:4)
如果我正确理解了这个问题,那么当用户的浏览器显示页面时,您的PHP程序已经完成运行。您需要执行此客户端(即在Javascript,Flash或Java中)或在服务器上具有单独的进程,该进程将更新推送到页面。