如何使用PHP消息传递系统显示新消息?

时间:2015-09-21 20:48:59

标签: php

我正在学习PHP并且已经阅读了一些书籍和教程,我已经开始在php消息站点上工作,只是为了学习一些技巧。问题是我无法弄清楚如何刷新用户显示的消息列表。

例如,当用户收到消息时,他们将不会收到该消息,直到他们的网页刷新为止。我意识到我可以在一个时间间隔内刷新页面,但如果正在写一条长消息,则在发送消息之前页面将会刷新。

由于我无法找到解决方案,我可以在网上找到我的头,我想在这里问:) 我对互联网的问题是:有没有办法刷新页面的一个部分,或者继续从数据库中绘制数据并将其回显给用户。

以下是向用户显示消息的页面代码。

<html>
<head>
<title>Conversations - Hepburn's Messager</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
</head>
<body>



<?php include 'connect.php'; ?>
<?php include 'functions.php'; ?>
<?php include 'title_bar.php'; ?>
<div class='container-fluid'>
        <h3>Conversations - Hepburn's Messager</h3>

  <?php include 'message_title_bar.php' ?>
  <?php
        $my_id = $_SESSION['user_id'];

  ?>
  <div>
  <?php


    if(isset($_GET['hash']) && !empty($_GET['hash'])) {

      $hash = $_GET['hash'];
    $message_query = mysql_query("SELECT from_id, message FROM messages WHERE group_hash='$hash'");

    while($run_message = mysql_fetch_array($message_query)) {

      $from_id = $run_message['from_id'];
      $message = $run_message['message'];

        $user_query = mysql_query("SELECT username FROM users WHERE id='$from_id'");
        $run_user = mysql_fetch_array($user_query);
      $from_username = $run_user['username'];

    echo "<p><b>$from_username</b><br/>$message</p>";

    setInterval(function(){
    echo "hi!\n";
        }, 1000);
        }
  ?>
        <br/>
        <form method='post'>
                <?php
                if(isset($_POST['message']) && !empty($_POST['message'])){
                        $new_message = $_POST['message'];
                        mysql_query("INSERT INTO messages VALUES('', '$hash', '$my_id', '$new_message')");
                        header('location: conversations.php?hash='.$hash);
                }
                ?>
                <h4>Enter Message:</h4>
                <textarea class='form-control' rows='6' cols='50' name='message'></textarea>
                <input class='btn btn-primary btn-lg' type='submit' value='Send Message'/>      <!-- problem -->
        </form>
  <?php
  } else {
        echo "<h4>Select a conversation:<h4>";
        $get_con = mysql_query("SELECT hash, user_one, user_two FROM message_group WHERE user_one='$my_id' OR user_two='$my_id'");

        while($run_con = mysql_fetch_array($get_con)){

                $hash = $run_con['hash'];
                $user_one = $run_con['user_one'];
                $user_two = $run_con['user_two'];


                if($user_one == $my_id){
                        $select_id = $user_two;
                } else {
                        $select_id = $user_one;
                }

                $user_get = mysql_query("SELECT username FROM users WHERE id='$select_id'");
                $run_user = mysql_fetch_array($user_get);

                $select_username = $run_user['username'];

                echo "<p><a href='conversations.php?hash=$hash'>$select_username</a></p>";

        }

  }
  ?>   
  </div>
</div>
</body>
</html>

0 个答案:

没有答案