【问题标题】:Mysql Public User chat to friend chatMysql公共用户聊天到朋友聊天
【发布时间】:2015-02-11 10:35:08
【问题描述】:

我目前遵循一个公共用户聊天教程,它使用 Msg_ID、Sender、Message。发件人是名称。我目前有一个朋友表,其中: ID、my_id、friend_id。 但我不确定如何更改聊天,因此它只会发送给收件人,反之亦然。我已将聊天表更改为以下内容:Msg_id、Author_id、Recipient_id、Message。 聊天的当前查询是:

<?php

    function get_msg() {

        $query = "SELECT `Author_ID`, `Message` FROM `pdo_ret`.`chat` ORDER BY `Msg_ID` ASC";

        $run = mysql_query($query);

        $messages = array();

        while($message = mysql_fetch_assoc($run)) {
            $messages[] = array('Author_ID'=>$message['Author_ID'],
                                'message'=>$message['Message']);
        }

        return $messages;

    }

    function send_msg($Author_ID, $message) {

        if(!empty($Author_ID) && !empty($message)) {

            $Author_ID  = mysql_real_escape_string($Author_ID);
            $message    = mysql_real_escape_string($message);

            $query = "INSERT INTO `pdo_ret`.`chat` (Msg_ID, Author_ID, Message) VALUES (null, '{$Author_ID}', '$message')";

            if($run = mysql_query($query)) {
                return true;
            } else {
                return false;
            }

        } else {
            return false;
        }
    }

?>

虽然聊天的形式是:

                        <form action="#" method="post" onsubmit="return InsertDefaultValues()"  id="form_input">
                            <input hidden type="text" name="Author_ID" id="Author_ID"/>
                            <input hidden type="text" name="friend_id" id="friend_id"/>
                            <input type="text" id="message" cols="5" rows="4"></textarea>
                        <input type="submit" name="send"  onsubmit="return InsertDefaultValues()"  id="send" value="Send Message"/>
                        </form>

这是我试图用来定义登录用户的会话脚本。

<?php
session_start();
if(!isset($_SESSION["user"]) or !is_array($_SESSION["user"]) or empty($_SESSION["user"]));
?>

【问题讨论】:

    标签: php html mysql chat


    【解决方案1】:

    应对查询进行以下更改:

    仅检索您的消息:

    $query = "SELECT `Author_ID`, `Message` FROM `pdo_ret`.`chat` WHERE Recipient_id = '$Recipient_id' ORDER BY `Msg_ID` ASC";
    

    指定配方:

    $query = "INSERT INTO `pdo_ret`.`chat` (Msg_ID, Author_ID, Recipient_id, Message) VALUES (null, '{$Author_ID}', '$Recipient_id', '$message')";
    

    【讨论】:

    • 谢谢,我现在可以看到你在那里做了什么:) 所以如果在输入中我的朋友 ID 是 40,作者 ID 是 41,那么只有 40 和 41 可以看到这个聊天吗?跨度>
    • 是的,41 是发件人,应该将其视为已发送,而 40 应将其视为已收到。
    • 我用过,任何人都可以看到消息:/
    【解决方案2】:

    <?php
        session_start();
        if(!isset($_SESSION["user"]) or !is_array($_SESSION["user"]) or empty($_SESSION["user"]));
    ?>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 2021-02-05
      相关资源
      最近更新 更多