現在、プライベート チャット メッセージを許可するチャット アプリに取り組んでいます。
課題は次のとおりです。
2 人のユーザーがプライベート チャットを開始した場合、両当事者間の送信者と受信者の一意の ID を特定して取得するにはどうすればよいですか。
アプリの開発方法について簡単に説明します。
チャット ボックス内に、両当事者の ID を追加しました。
$userId はプライベート チャットを開始または開始したユーザーの ID であり、$rec_id は $userId がチャットしたい相手の ID です。
メッセージの送信者が誰で、受信者が誰であるかを判断するのは空白です。
JS
//handles user pressing enter. Instead of submitting the form, new message is sent to the server and then return false.
function blockSubmit() {
sendChatMsg();
return false;
}
//send a message to the server.
function sendChatMsg() {
if(document.getElementById('new_message').value == '') {
alert("You did not type any message!");
return;
}else{
if(sendNewMsg.readyState == 4){
//sendNewMsg.open("POST", 'inc/chat_processor.php?chat_msg&rec='+ recIdVar, true);
sendNewMsg.open("POST", 'inc/chat_processor.php?send_chat_msg', true);
sendNewMsg.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
//var newChatMsgVar = 'send_chat_msg';
//newChatMsgVar += '&new_msg=' + document.getElementById('new_message').value;
var newChatMsgVar = '&new_msg=' + document.getElementById('new_message').value;
newChatMsgVar += '&new_sender=' + document.getElementById('new_msg_sender').value;
newChatMsgVar += '&new_receiver=' + document.getElementById('new_msg_receiver').value;
sendNewMsg.send(newChatMsgVar);
document.getElementById('new_message').value = '';
sendNewMsg.onreadystatechange = function(){
if(sendNewMsg.readyState == 4 && sendNewMsg.status == 200){
//Clear out the existing timer to avoid multiple timer instances running before chat box update.
clearInterval(mTimer);
// Update chat box after message has been sent.
getChatText(recIdVar);
}
}// End: Undefined Callback for chat message sending
}
}
}
PHP
if(isset($_GET['send_chat_msg'])) {
$new_msg = @mysql_real_escape_string(strip_tags($_POST['new_msg']));
$new_sender = @mysql_real_escape_string(strip_tags($_POST['new_sender']));
$new_receiver = @mysql_real_escape_string(strip_tags($_POST['new_receiver']));
$qry_sender_det = @mysql_query("SELECT * FROM `member_bio` WHERE m_id = '".$user_id."'");
$sender_det_row = @mysql_fetch_assoc($qry_sender_det);
$sender_name = $sender_det_row['f_name']." ";
$sender_name .= $sender_det_row['l_name'];
$sender_pix = $sender_det_row['profilepic'];
$sql = "INSERT INTO `inv_chat` (`id`, `sender_id`, `receiver_id`, `msg`, `name`, `profilepic`, `cur_time`, `cur_date`) VALUES ('', '$new_sender', '$new_receiver', '$new_msg', '$sender_name', '$sender_pix', CURTIME(), CURDATE());";
@mysql_query($sql);
}
HTML
<?php
@include "inc/db.php";
@include "inc/user_login_settings.php";
$userId = userAccessInfo('id');
$rec_id = @mysql_real_escape_string(strip_tags($_GET['rec_id']));
$qry_result = @mysql_query("SELECT * FROM `member_bio` where m_id = '$rec_id'");
$result_row = @mysql_fetch_assoc($qry_result);
$rec_name = $result_row['f_name']." ";
$rec_name .= $result_row['l_name'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $rec_name; ?></title>
<script type="text/javascript" src="js/getchatmsg.js"></script>
<style>
* {padding:0; margin:0;}
.new_chat_main_holder {padding:5px;}
form input {border:1px solid #090; width:95%; height:30px; padding:5px;}
div.chat_msg_row { padding-left:5px; padding-top:10px; padding-bottom:3px; border-bottom:1px dashed #060;}
div.chat_msg_row img {float:left; margin-right:10px; width:30px; height:30px;}
div.chat_msg_row p strong {font-size:12px; color:#090; margin-bottom:3px; font-weight:bold; color:#900;}
div.chat_msg_row p {font-size:12px; color:#090; margin-bottom:3px;}
div.chat_msg_row p span {font-size:10px; font-style:italic; color:#000;}
</style>
</head>
<body onLoad="javascript:allChatMsgLoader(<?php echo $rec_id; ?>);">
<div class="new_chat_main_holder">
<div id="new_chat_box" style="width:99%; height:290px; overflow: auto; background-color: #FC6; border: 1px solid #555555;">
</div>
<form id="frmmain" name="new_chat_msg_submit" onsubmit="return blockSubmit();">
<input type="text" id="new_message" name="new_message" placeholder="Type chat message here" autocomplete="off" maxlength="250" />
<input type="hidden" id="new_msg_sender" name="new_msg_sender" value="Dont know what to place here" />
<input type="hidden" id="new_msg_receiver" name="new_msg_receiver" value="Dont know what to place here" />
</form>
</div>
</body>
</html>
注: 現在、プライベート チャットにポップアップ ウィンドウを使用していますが、jquery ダイアログ/モーダル ボックスで作業しています。
喜んで助けていただければ幸いです。