0

現在、プライベート チャット メッセージを許可するチャット アプリに取り組んでいます。

課題は次のとおりです。

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 ダイアログ/モーダル ボックスで作業しています。

喜んで助けていただければ幸いです。

4

0 に答える 0