【问题标题】:Glitch in sent mail delete function已发送邮件删除功能出现故障
【发布时间】:2011-01-07 12:11:45
【问题描述】:

我还是个新手。也就是说,我的网站有一个消息系统,允许用户删除他们发送的消息。发现如果我从“已发送”框中删除我的邮件,它会从收件人收件箱中删除邮件。我有两种方法可以从您发送的邮件中删除邮件,“删除所有邮件”和一一删除。

这是我的全部擦除代码:

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);

那么,如何阻止我的查询从收件人收件箱中删除已发送邮件中的已发送邮件?

【问题讨论】:

  • 如果我错了请纠正我,但看起来你是在没有使用正确的标签的情况下组合 js 和 php?
  • 那些是分开的,我只是从各个地方切掉主要组件的零碎,这样你就可以看到我在使用什么
  • 你如何处理收件人的死亡状态?除非您有一些特殊情况代码,否则我假设您从与已发送邮箱相同的数据库中读取您的收件箱,问题是您只是从不同的位置访问相同的数据。

标签: php html xhtml message


【解决方案1】:

为此,您可能需要更改表格的结构,或更改使用“状态”列的方式。

这是一个潜在的解决方案,它建议对表结构进行更改,但如果没有更多信息,我无法确定它是否会起作用(甚至是否相关):


现在你的消息表只有一个 'Status' 列,它真正需要的是一个 'Status Sender' 列和一个 'Status Receiver ' 列。

当发送者删除消息时将'Status Sender'值设置为'dead',当接收者删除消息时将'Status Receiver'设置为'dead'强>

这意味着当您在用户收件箱中显示 消息 时,您需要查询 'Status Reciever' = 'alive',并且当您显示 用户发送文件夹中的消息,您需要查询'Status Sender' = 'alive'。


注意:这种设计不适合单个用户向多个收件人发送消息的场景。

【讨论】:

  • 很有意义。我知道这与那种性质有关,但不确定是什么。谢谢!
猜你喜欢
  • 2012-11-10
  • 2011-01-31
  • 2018-11-12
  • 2021-02-28
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
相关资源
最近更新 更多