PHP ベースのリアルタイム チャット システムのメッセージ書き込みと読み取り後の削除
インターネットの急速な発展により、チャット機能は現代人の生活の一部となりました。日常生活に欠かせないもの。特に、リアルタイムチャットシステムは、インターネットを介して瞬時にメッセージを送信し、迅速なコミュニケーションを実現します。ただし、シナリオによっては、ユーザーのプライバシーと情報セキュリティの保護が緊急に解決すべき問題となっています。この記事では、リアルタイムチャットシステムにおいて、メッセージの書き込みや既読後の削除機能をPHPを使って実装する方法を紹介します。
この機能を実現するポイントは、メッセージの削除時間を一定の期限に設定し、その期限を過ぎると自動的にメッセージが削除されることで、メッセージの適時性と安全性を確保することです。以下では、これら 2 つの関数の実装方法をコード例を通して紹介します。
まず、ユーザーのチャット メッセージを保存するデータベースを作成する必要があります。以下は簡単なデータベース構造です:
CREATE TABLE messages ( id INT PRIMARY KEY AUTO_INCREMENT, sender_id INT, receiver_id INT, content TEXT, create_time DATETIME, delete_time DATETIME );
リアルタイム チャット システムでは、ユーザーがメッセージを送信するときに、メッセージの送信者 ID、受信者 ID、メッセージの内容、送信時刻、削除時刻を保存する必要があります。メッセージ 。送信時刻は PHP 関数 date("Y-m-d H:i:s")
で取得できますが、削除時刻は読み取り後の書き込みと読み取り後の削除の要件に従って設定する必要があります。
以下は、ユーザーがメッセージを送信し、データベースにメッセージを保存する機能を実装する簡単なサンプル コードです。
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); if (mysqli_connect_errno()) { echo "数据库连接失败:" . mysqli_connect_error(); die(); } // 获取发送者ID和接收者ID $senderId = $_POST['sender_id']; $receiverId = $_POST['receiver_id']; // 获取消息内容 $content = $_POST['content']; // 获取当前时间 $createTime = date("Y-m-d H:i:s"); // 设置消息的删除时间为30分钟后 $deleteTime = date("Y-m-d H:i:s", strtotime("+30 minutes")); // 插入消息到数据库 $sql = "INSERT INTO messages (sender_id, receiver_id, content, create_time, delete_time) VALUES ('$senderId', '$receiverId', '$content', '$createTime', '$deleteTime')"; mysqli_query($conn, $sql); // 关闭数据库连接 mysqli_close($conn);
上記のコードでは、$_POST# を通じて取得します。 ## ユーザーが送信したメッセージの送信者 ID、受信者 ID、およびメッセージの内容。次に、
date("Y-m-d H:i:s") で現在時刻を取得し、
strtotime(" 30 minutes") で削除時刻を 30 分後に設定します。最後に、メッセージがデータベースに挿入され、データベース接続が閉じられます。
<?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); if (mysqli_connect_errno()) { echo "数据库连接失败:" . mysqli_connect_error(); die(); } // 获取消息ID $messageId = $_GET['message_id']; // 获取当前时间 $currentTime = date("Y-m-d H:i:s"); // 查询消息的删除时间 $sql = "SELECT delete_time FROM messages WHERE id = $messageId"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); $deleteTime = $row['delete_time']; // 检查当前时间是否超过了删除时间 if ($currentTime > $deleteTime) { // 超过了删除时间,删除消息 $sql = "DELETE FROM messages WHERE id = $messageId"; mysqli_query($conn, $sql); } else { // 未超过删除时间,显示消息内容 $sql = "SELECT content FROM messages WHERE id = $messageId"; $result = mysqli_query($conn, $sql); $row = mysqli_fetch_assoc($result); echo $row['content']; } // 关闭数据库连接 mysqli_close($conn);
$_GET を使用して、表示されたメッセージ内のメッセージ ID を取得します。ユーザーによる。次に、
date("Y-m-d H:i:s") を通じて現在時刻を取得し、メッセージの削除時刻をクエリします。現在時刻と削除時刻との比較に基づいて、メッセージを削除するかメッセージの内容を表示するかを決定できます。
以上がPHPベースのリアルタイムチャットシステム、メッセージは読むと消え、読むと削除されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。