PHPベースのリアルタイムチャットシステム、メッセージは読むと消え、読むと削除される

WBOY
リリース: 2023-08-26 21:26:01
オリジナル
1536 人が閲覧しました

PHPベースのリアルタイムチャットシステム、メッセージは読むと消え、読むと削除される

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ベースのリアルタイムチャットシステム、メッセージは読むと消え、読むと削除されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート