현재 인터넷 시대에 온라인 커뮤니케이션은 우리 일상생활에서 없어서는 안 될 부분이 되었습니다. 직장에서든 생활에서든 우리 모두는 온라인을 통해 다른 사람들과 소통하고 소통해야 합니다. 따라서 오늘날의 웹사이트 개발에 있어 온라인 커뮤니케이션 기능의 구현은 점점 더 중요해지고 있습니다. 이 기사에서는 PHP를 사용하여 기본적인 온라인 통신 기능을 구현하는 방법을 소개하고 완전한 코드 예제를 제공합니다.
1. MySQL 테이블 디자인
PHP 코드 작성을 시작하기 전에 필요에 따라 데이터베이스 테이블 구조를 디자인하세요. 예를 들어, 테이블은 다음 데이터를 저장해야 합니다. 발신자 ID
CREATE TABLE `chat_message` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `from_user_id` int(11) unsigned NOT NULL, `to_user_id` int(11) unsigned NOT NULL, `message` varchar(255) DEFAULT '', `send_time` datetime DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "chat_db"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接是否成功 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); }
// 获取发送人ID和接收人ID $from_user_id = $_SESSION['user_id']; $to_user_id = $_POST['to_user_id']; $message = $_POST['message']; // 获取当前时间 $send_time = date('Y-m-d H:i:s'); // 将数据插入到 chat_message 表中 $sql = "INSERT INTO chat_message (from_user_id, to_user_id, message, send_time) VALUES ('$from_user_id', '$to_user_id', '$message', '$send_time')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
// 获取对话双方的ID $user1_id = $_GET['user1_id']; $user2_id = $_GET['user2_id']; // 查询消息记录 $sql = "SELECT * FROM chat_message WHERE (from_user_id = '$user1_id' AND to_user_id = '$user2_id') OR (from_user_id = '$user2_id' AND to_user_id = '$user1_id') ORDER BY send_time ASC"; $result = mysqli_query($conn, $sql); // 输出消息记录 while($row = mysqli_fetch_assoc($result)) { echo $row['send_time'] . " - " . $row['message'] . "<br>"; }
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>网上交流功能</title> </head> <body> <h1>网上交流功能</h1> <div id="chat_box" style="border: 1px solid black; height: 500px; overflow: auto;"></div> <br> <form id="message_form" action="" method="POST"> 接收人ID:<input type="text" name="to_user_id"><br><br> 消息内容:<input type="text" name="message"><br><br> <input type="submit" value="发送"> </form> <script> // 获取聊天记录 setInterval(function() { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { document.getElementById("chat_box").innerHTML = this.responseText; } }; xmlhttp.open("GET", "get_chat_history.php?user1_id="+user1_id+"&user2_id="+user2_id, true); xmlhttp.send(); }, 1000); // 发送消息 document.getElementById("message_form").addEventListener("submit", function(event) { event.preventDefault(); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { console.log(this.responseText); } }; var data = new FormData(document.getElementById("message_form")); xmlhttp.open("POST", "insert_chat_message.php", true); xmlhttp.send(data); document.getElementById("message_form").reset(); }); </script> </body> </html>
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "chat_db"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接是否成功 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } ?>
위 내용은 PHP로 온라인 커뮤니케이션 기능을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!