私はチャット ルームを作成しています。私のコードは機能しますが、誰もがお互いにチャットした内容を見ることができます。これを、チャットしている 2 人だけが見ることができるように制限したいと考えています。
これは私のchat.phpです
<?php
include_once("chat.funct.php");
if(isset($_POST['send'])){
if(send_msg($_POST['sender'],$_POST['message'])){
echo "message sent...";
}
else{
echo ("message sending failed");
}
}
?>
<div id="messages">
<?php
$messages = get_msg();
foreach($messages as $value) {
echo '<strong>'.$value['sender'].' Sent</strong><br />';
echo $value['message'].'<br /><br />';
}
?>
<form method="post" >
<label>Enter Name:<input type="text" name="sender"/></label>
<label>Enter Message:<textarea name="message" rows="8" cols="70"></textarea></label>
<input type="submit" name="send" value="Send Message">
</form>
</div>
これはchat.funct.phpです
<?php
$connect=mysql_connect('localhost','root');
$a=mysql_select_db('cs2');
function get_msg(){
$query="SELECT * FROM chat1";
$run=mysql_query($query);
$messages=array();
while($message=mysql_fetch_assoc($run)){
$messages[]=array('sender'=>$message['sender'],'message'=>$message['message']);
}
return $messages;
}
function send_msg($sender,$message){
if(!empty($sender)&&!empty($message)){
$sender=mysql_real_escape_string($sender);
$message=mysql_real_escape_string($message);
$query="INSERT INTO chat1 (sender,message) VALUES('$sender','$message')";
$run=mysql_query($query);
if($run){
return true;
}
else{
return false;
}
}
else{
return false;
}
}
//レベル 2 はサイトのユーザーで、レベル 3 は管理者です。
私のchat1テーブルには、送信者、受信者、メッセージの3つの列があります。私がやろうとしているのは、テーブルでsender==receiver
.
$query="SELECT * FROM chat1 WHERE sender='$sender' AND receiver='$receiver'";
しかし、このクエリを書くために、取得できない前のメッセージ送信者の名前を確認したいと思います。関係者 2 人だけにメッセージを表示する簡単なチャットを作成するのを手伝ってください。