【发布时间】:2013-08-17 12:25:32
【问题描述】:
我正在开发一个包含 HTML、jQuery、PHP 和 MySQL 的聊天应用程序。我的程序是这样的:左边有用户栏,在这里你可以找到所有的用户(程序还显示用户是否在线,但这个我可以处理)。当您从列表中单击用户时,它会生成一个可拖动的容器 div,如下所示:
<div class="container"><div class="head"></div><div id="conversation"></div></div>
说明:“head”类仅用于显示合作伙伴的头像并在点击时切换“对话”div。
我的问题:
我想我会使用 AJAX 和 JavaScript 将对话加载到“对话”div 中,这样它就会在不刷新页面的情况下刷新 div。用户将同时打开多个用户对话,因此我需要了解如何确定要在每个 div 中加载哪个对话。我被困在这里了。
可选:我希望用户看到合作伙伴何时看到消息,但我认为我可以显示“在 DATE 看到”。当conversation 设置为可见时。如果您有其他建议,请随时解释。
所有信息都取自 MySQL 数据库。
我的PHP显示函数是这样的:
<?php
include_once('connect.php');
$you = $SESSION['user'];
$takeconversation = "SELECT * FROM conversations WHERE sender='$partner' AND receiver='$you' OR sender='$you' AND receiver='$partner'";
$dotake = mysqlquery($takeconversation);
?>
所以$you 是$SESSION['user'],但我需要添加一个标识符来为$partner 赋予一个值,所以$partner 对于每个对话div 会有不同的值。
【问题讨论】:
-
我无法弄清楚您的实际问题是什么,但您有一个明显的 SQL 注入漏洞。我建议您阅读 PDO 和参数化查询。
-
我知道,我会重新创建选择代码来防止这种情况发生。让我解释一下:我有一个包含这些字段的 SQL 表:id - 发送者 - 接收者 - 消息当用户从朋友列表中打开一个窗口 (div) 时,它将获取发送者是用户和接收者是合作伙伴的所有消息或发件人是合作伙伴,收件人是用户。但我需要一次在多个窗口中执行此操作,因此它会选择与另一个 div 中的另一个朋友的对话。像 Facebook 聊天一样:您可以一次与多个朋友聊天。
-
问题是:如何识别合作伙伴并为每个打开的div显示与该合作伙伴的对话?
-
您需要在用户点击合作伙伴名称时获得合作伙伴 ID,而不是在新 div 打开时获得
-
但是我有一个问题。假设用户点击 John 并且 $partner 获取值“John”,那么他也想与 Andrew 交谈并且 $partner 获取值“Andrew”。有 John 的窗口还会加载消息吗?
标签: php javascript jquery mysql identifier