Maison  >  Article  >  développement back-end  >  Système de chat en temps réel basé sur PHP, les messages disparaissent après lecture et sont supprimés après lecture

Système de chat en temps réel basé sur PHP, les messages disparaissent après lecture et sont supprimés après lecture

WBOY
WBOYoriginal
2023-08-26 21:24:301467parcourir

Système de chat en temps réel basé sur PHP, les messages disparaissent après lecture et sont supprimés après lecture

Le système de chat en temps réel basé sur PHP peut graver et supprimer des messages après lecture

Avec le développement rapide d'Internet, la fonction de chat est devenue un élément indispensable de la vie quotidienne des gens modernes. En particulier, le système de chat en temps réel permet aux gens de transmettre des messages instantanément via Internet et d'établir une communication rapide. Cependant, dans certains scénarios, la protection de la vie privée des utilisateurs et la sécurité des informations sont devenues un problème urgent à résoudre. Cet article expliquera comment utiliser PHP pour implémenter les fonctions de disparition et de suppression des messages après lecture dans le système de discussion en temps réel.

La clé pour mettre en œuvre cette fonction est de définir le délai de suppression du message sur un certain délai. Une fois ce délai dépassé, le message sera automatiquement supprimé, garantissant ainsi l'actualité et la sécurité du message. Ce qui suit présentera comment implémenter ces deux fonctions à travers des exemples de code.

Tout d'abord, nous devons créer une base de données pour stocker les messages de discussion des utilisateurs. Voici une structure de base de données simple :

CREATE TABLE messages (
    id INT PRIMARY KEY AUTO_INCREMENT,
    sender_id INT,
    receiver_id INT,
    content TEXT,
    create_time DATETIME,
    delete_time DATETIME
);

Dans un système de chat en temps réel, lorsqu'un utilisateur envoie un message, nous devons stocker l'ID de l'expéditeur, l'ID du destinataire, le contenu du message, l'heure d'envoi et l'heure de suppression du message. L'heure d'envoi peut être obtenue via la fonction PHP date("Y-m-d H:i:s"). L'heure de suppression doit être définie en fonction des exigences de gravure après lecture et de suppression après lecture. 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")

Ce qui suit est un exemple de code simple qui implémente la fonction des utilisateurs qui envoient des messages et enregistrent des messages dans la base de données :

rrreee

Dans le code ci-dessus, nous utilisons $_POST pour obtenir l'expéditeur du message envoyé par l'ID utilisateur, l'ID du destinataire et le contenu du message. Ensuite, obtenez l'heure actuelle via date("Y-m-d H:i:s") et définissez le temps de suppression sur 30 minutes via strtotime("+30 minutes") . Enfin, le message est inséré dans la base de données et la connexion à la base de données est fermée. 🎜🎜Lorsque l'utilisateur consulte le message, nous devons vérifier si l'heure actuelle dépasse l'heure de suppression du message. Si le délai de suppression est dépassé, nous pouvons supprimer le message de la base de données. Ce qui suit est un exemple de code simple qui implémente la fonction permettant aux utilisateurs d'afficher et de supprimer des messages : 🎜rrreee🎜Dans le code ci-dessus, nous utilisons $_GET pour obtenir l'ID du message dans les messages consultés par l'utilisateur. . Ensuite, obtenez l'heure actuelle via date("Y-m-d H:i:s") et interrogez l'heure de suppression du message. Sur la base de la comparaison entre l'heure actuelle et l'heure de suppression, nous pouvons décider de supprimer le message ou d'afficher le contenu du message. 🎜🎜Grâce à l'exemple de code ci-dessus, nous pouvons implémenter les fonctions de disparition et de suppression des messages après lecture dans le système de chat en temps réel basé sur PHP. De cette manière, les messages envoyés par les utilisateurs peuvent être automatiquement supprimés après une heure spécifiée, protégeant ainsi la confidentialité et la sécurité des informations de l'utilisateur. Bien entendu, nous pouvons également procéder à des optimisations et des améliorations appropriées en fonction des besoins réels. J'espère que cet article vous aidera ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn