Suppression d'un message privé.
Suan01
Messages postés
21
Statut
Membre
-
Gremy87 Messages postés 360 Statut Membre -
Gremy87 Messages postés 360 Statut Membre -
Bonjour,
J'ai créé un code pour supprimer un message, mais le problème, c'est que quand l'utilisateur1 supprime le message de l'utilisateur2, et bien le message est aussi supprimé dans la messagerie privée de l'utilisateur2, et je ne vois pas comment faire pour que l'utilisateur2 garde une copie afin de la supprimer quand bon lui semble.
Voici le code de la messagerie privée:
Et voici le code qui permet de supprimer le message:
J'espère que vous pourrez m'aider,
S.
J'ai créé un code pour supprimer un message, mais le problème, c'est que quand l'utilisateur1 supprime le message de l'utilisateur2, et bien le message est aussi supprimé dans la messagerie privée de l'utilisateur2, et je ne vois pas comment faire pour que l'utilisateur2 garde une copie afin de la supprimer quand bon lui semble.
Voici le code de la messagerie privée:
<?php
//On verifie que lutilisateur est connecte
if(isset($_SESSION['pseudo']))
{
if ($suppr) {
$result=mysql_query ("DELETE FROM pm WHERE id='$suppr'") or die ("Erreur de suppression");}
//On affiche la liste des messages de l'utilisateur sous la forme dun tableau
//Deux requettes sont executees, une pour recuperer les messages non-lus et une pour les messages lus
$req1 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, test.id as userid, test.pseudo from pm as m1, pm as m2,test where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="no" and test.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="no" and test.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
$req2 = mysql_query('select m1.id, m1.title, m1.timestamp, count(m2.id) as reps, test.id as userid, test.pseudo from pm as m1, pm as m2,test where ((m1.user1="'.$_SESSION['userid'].'" and m1.user1read="yes" and test.id=m1.user2) or (m1.user2="'.$_SESSION['userid'].'" and m1.user2read="yes" and test.id=m1.user1)) and m1.id2="1" and m2.id=m1.id group by m1.id order by m1.id desc');
?>
</p>
<div class="boutoncomp" ><a href="new_pm.php" class="link_new_pm" style="text-decoration : none"><font color="#424242"><strong>Rédiger</strong></font></a></div>
<div class="boutoncomp" ><a href="esme.php" class="link_new_pm" style="text-decoration : none"><font color="#424242"><strong>Retour au compte</strong></font></a></div>
<br />
<br />
<h3> </h3>
<h3>Messages non-lus(<?php echo intval(mysql_num_rows($req1)); ?>):</h3>
<table>
<tr>
<th class="title_cell">Titre</th>
<th>Nb. Réponses</th>
<th>Participant</th>
<th>Date d'envoi</th>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<?php
//On affiche la liste des messages non-lus
while($dn1 = mysql_fetch_array($req1))
{
?>
<tr>
<td class="left"><a href="read_pm.php?id=<?php echo $dn1['id']; ?>"><?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo $dn1['reps']-1; ?></td>
<td><a href="profile.php?id=<?php echo $dn1['userid']; ?>"><?php echo htmlentities($dn1['pseudo'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo date('d/m/Y H:i:s' ,$dn1['timestamp']); ?></td>
</tr>
<?php
}
//Sil na aucun message non-lu, on le dit
if(intval(mysql_num_rows($req1))==0)
{
?>
<tr>
<td colspan="4" class="center">Vous n'avez aucun message non-lu.</td>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<?php
}
?>
</table>
<br />
<h3>Messages lus(<?php echo intval(mysql_num_rows($req2)); ?>):</h3>
<table>
<tr>
<th class="title_cell">Titre</th>
<th>Nb. Réponses</th>
<th>Participant</th>
<th>Date d'envoi</th>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<?php
//On affiche la liste des messages lus
while($dn2 = mysql_fetch_array($req2))
{
?>
<tr>
<td class="left"><a href="read_pm.php?id=<?php echo $dn2['id']; ?>"><?php echo htmlentities($dn2['title'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo $dn2['reps']-1; ?></td>
<td><a href="profile.php?id=<?php echo $dn2['userid']; ?>"><?php echo htmlentities($dn2['pseudo'], ENT_QUOTES, 'UTF-8'); ?></a></td>
<td><?php echo date('d/m/Y H:i:s' ,$dn2['timestamp']); ?></td>
<td bgcolor="#FFFFFF"><a href="delete_ac.php?id=<? echo $dn2['id']; ?>">Supprimer</a></td>
</tr>
<?php
}
//Sil na aucun message lu, on le dit
if(intval(mysql_num_rows($req2))==0)
{
?>
<tr>
<td colspan="4" class="center">Vous n'avez aucun message lu.</td>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<?php
}
?>
</table>
<p>
<?php
}
else
{
echo 'Vous devez être connecté pour accéder à cette page.';
}
?>
Et voici le code qui permet de supprimer le message:
<?php
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// get value of id that sent from address bar
$id=$_GET['id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
// if successfully deleted
if($result){
echo "Message supprimé.";
echo "<BR>";
echo "<a href='list_pm.php'>Retour</a>";
}
else {
echo "ERROR";
}
// close connection
mysql_close();
?>
J'espère que vous pourrez m'aider,
S.
A voir également:
- Suppression d'un message privé.
- Numero prive - Guide
- Forcer la suppression d'un fichier - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Epingler un message whatsapp - Accueil - Messagerie instantanée
- Message absence thunderbird - Guide
3 réponses
Bonjour,
je pense pas que ton probleme soit un probleme de code mais plutot d'analyse de ton application.
le message privé et le message "publique" qui peut etre supprimé par un autre utilisateur est-il le meme en BD?
si c'est le meme, ce que je pense, la meilleur solution est de rajouter un champ (booléen) dans ta table indiquant si le message peut etre vu par les autres utilisateurs. la "suppréssion" du message par un autre utilisateur ne fera donc que modifier ce booléen indiquant que ce message ne peut plus etre lu par les autre mais reste présent en BDD et donc accessible via les message privés.
bon j'espere avoir bien compris ton soucis...
bon courage
je pense pas que ton probleme soit un probleme de code mais plutot d'analyse de ton application.
le message privé et le message "publique" qui peut etre supprimé par un autre utilisateur est-il le meme en BD?
si c'est le meme, ce que je pense, la meilleur solution est de rajouter un champ (booléen) dans ta table indiquant si le message peut etre vu par les autres utilisateurs. la "suppréssion" du message par un autre utilisateur ne fera donc que modifier ce booléen indiquant que ce message ne peut plus etre lu par les autre mais reste présent en BDD et donc accessible via les message privés.
bon j'espere avoir bien compris ton soucis...
bon courage
Oui les utilisateurs partagent la même table, si un utilisateur envoie un e-mail à un autre utilisateur, les données du message sont dans la même table pour les deux utilisateurs.
Donc, avec un booléen, on va dire que par défaut c'est 0 alors le message reste visible pour les deux utilisateurs, et si un des deux utilisateurs décide de le supprimer, la valeur passe à 1 et le message disparaît pour celui qui a choisit de le supprimer, mais pas pour l'autre car l'autre utilisateur n'a pas choisit de supprimer le message, c'est bien ça ? Et le message reste donc dans la base de donnée.
Donc, avec un booléen, on va dire que par défaut c'est 0 alors le message reste visible pour les deux utilisateurs, et si un des deux utilisateurs décide de le supprimer, la valeur passe à 1 et le message disparaît pour celui qui a choisit de le supprimer, mais pas pour l'autre car l'autre utilisateur n'a pas choisit de supprimer le message, c'est bien ça ? Et le message reste donc dans la base de donnée.