我还是一个新手。所以说,我的网站有一个消息系统,允许用户删除他们发送的消息。已经发现,如果我从我的“已发送”框中删除我的邮件,它会从收件人收件箱中删除邮件。我有两种方法可以删除已发送邮件中的邮件,“删除所有邮件”并逐个删除。
这是我擦除所有的代码:
function deleteAll() {
var answer = confirm('Are you sure you want to delete all of your messages?');
if(answer){
return true;
}else{
return false;
}
}
if(isset($_POST['subEraseAll'])){
$query = "UPDATE `Messages` SET `status` = 'dead' WHERE `sentFrom` = '".$auth->id."'";
mysql_query($query,$connection) or die(mysql_error());
<div class="EraseAll">
<form name="EraseAll" action="SentMail.php" method="post" onsubmit="return deleteAll();">
<input type="submit" name="subEraseAll" value="Erase All Messages" />
</form>
</div>
以下是通过deleteConfirmPage逐个删除邮件的代码:
$message = $_GET['id'];
$query = "SELECT * FROM `Messages` WHERE `id` = '" . $message . "'";
$request = mysql_query($query,$connection);
$result = mysql_fetch_array($request);
$toUser = $result['sentTo'];
$fromUser = $result['sentFrom'];
if($auth->id !=$fromUser) {
header("Location: index.php");
exit;
}
$query = "UPDATE `Messages` SET `status` = 'dead' WHERE `id` = '".$message."' LIMIT 1";
$request = mysql_query($query,$connection);
那么,如何阻止我的查询从收到的收件箱中删除已发送邮箱中的已发送邮件?
答案 0 :(得分:2)
为此,您可能需要更改表格的结构,或更改“状态”列的使用方式。
这是一个潜在的解决方案,它建议对表结构进行更改,但如果没有更多信息,我无法确定它是否可行(甚至是相关的):
现在,您的留言表只有'状态'列,它真正需要的是'状态发件人'列,另外还有'状态接收器'专栏。
当发件人删除邮件将“状态发件人”值设置为“已死”时,以及当收件人删除邮件时将“状态接收器”设置为“已死”强>
这意味着当您在用户收件箱中显示消息时,您需要查询'状态接收者'='有效',以及当您显示用户已发送文件夹中的邮件,您需要查询'状态发件人'='有效'。
注意:对于单个用户向多个收件人发送邮件的情况,此设计不太好。