現在のインターネット時代において、オンラインコミュニケーションは私たちの日常生活に不可欠な部分となっています。仕事でも生活でも、私たちは皆、オンラインで他の人とコミュニケーションしたり交流したりする必要があります。したがって、今日の Web サイト開発では、オンライン コミュニケーション機能の実装がますます重要になっています。この記事では、PHP を使用して基本的なオンライン通信機能を実装する方法を紹介し、完全なコード例を示します。
1. MySQL テーブルの設計
PHP コードを書き始める前に、必要に応じてデータベース テーブル構造を設計してください。たとえば、chat_message という名前のテーブル構造を設計します。次のデータ:
上記の要件に基づいて、次のテーブル構造を設計する必要があります:
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;
2. MySQL データベースに接続します
PHP で、MySQL に接続します。データベースは非常にシンプルです。 mysqli_connect() 関数を使用して MySQL に接続するだけです。
次は、MySQL データベースへの接続の例です:
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "chat_db"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检查连接是否成功 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); }
3. チャット メッセージの挿入
ユーザーが Web サイトでチャット メッセージを送信するときは、次の操作を行う必要があります。メッセージをデータベースの中央に挿入します。
次は、チャット メッセージを挿入するコード例です:
// 获取发送人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); }
4. チャット履歴の取得
ユーザーが Web サイトでチャット履歴を表示するとき、以下を取得する必要があります。データベースの歴史的なニュースから取得します。
以下は、チャット履歴レコードを取得するコード例です。
// 获取对话双方的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>"; }
上記のコードは、chat_message テーブルから現在のユーザーに関連するチャット レコードをクエリし、メッセージ レコードを出力します。送信時間順。
5. Web UI の実装
最後に、ユーザーがブラウザーでチャット メッセージを送受信できるようにする Web UI を作成する必要があります。
以下は、Web UI を実装するコード例です:
<!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>
上記のコードは Web UI を作成し、ユーザーがフォームに記入することでメッセージを送受信できるようにします。 setInterval() 関数を使用してチャット レコードを定期的にクエリし、XMLHttpRequest オブジェクトを使用してサーバーにデータを送信することで、新しいチャット レコードをリアルタイムで確認できます。同時に、addEventListener() 関数を使用してイベント リスナーをフォームに追加することで、ユーザーが送信したメッセージをキャプチャしてデータベースに挿入できます。
6. 完全なコード
次は、MySQL データベースに接続し、チャット メッセージを挿入し、チャット履歴を取得するための PHP コードの例です。
connect_db.php
<?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()); } ?>
insert_chat_message.php
get_chat_history.php
上記は、PHP を使用してオンライン通信を実装する完全なコード例です。機能。このコード例はセキュリティなどを考慮したものではありませんので、ご利用の際は改善・最適化に注意してください。
以上がPHPでオンラインコミュニケーション機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。