PHP即时通讯工具

时间:2015-02-14 15:55:31

标签: php sql messenger

我正在尝试使用PHP和SQL创建一个使者 这是我的代码

    <form action="send_post.php" method="post">
    <h3>Name:</h3>
    <input type="text" name="name">
    <h3>Message:</h3>
    <input type="text" name="message">
    <input type="submit">
</form>
<?php
$servername = "servername";
$username = "username";
$password = "password";
$dbname = "dbname";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, name, message FROM chat";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
                while(1){
                        ob_start();
                        echo "" . $row["name"]. " - " . $row["message"]. "<br>";

                        sleep(10);
                        echo "" . $row["name"]. " - " . $row["message"]. "<br>";
                        ob_end_clean();

}
} 
}


$conn->close();
?>

然而这不起作用,有什么理由吗? 一旦我添加了无限循环来刷新消息,问题便开始了。

1 个答案:

答案 0 :(得分:1)

PHP工作于服务器,这意味着客户端(访客)请求服务器然后“编译”的页面然后作为客户端语言(如HTML)发送到客户端。如果PHP代码永远不会达到结束/停止,则客户端浏览器会认为服务器停止响应并发出错误。

要实现您的目标,您可能需要查看JQuery AJAX之类的内容,它允许客户端从主请求中单独从服务器获取数据。这样,您可以使用一个文件仅显示消息并在计时器上请求该文件,同时使表单像往常一样加载页面。但是,您也可以使用JQuery AJAX

使表单动态化

更新您可以查看此blogpost以了解我在说什么。