Gönderilen posta aksaklık silme fonksiyonu

1 Cevap php

Ben söyleniyor, benim site kullanıcılarının kendi gönderilen mesajları silmenize olanak sağlayan bir mesajlaşma sistemine sahip olduğunu hala newbie.So duyuyorum. Onun benim 'gönderildi' kutunun dışında benim mesajları silerseniz, bu alıcıların gelen kutunuzdan mesajını siler keşfedildi. Ben senin gönderilen posta dışarı mesajları silmek için iki yol var ve tek tek 'tüm iletileri silmek'.

Burada silme herkes için benim kod:

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>

İşte deleteConfirmPage aracılığıyla mesaj tek tek silmek için kod:

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

So my question is how do I stop my query from erasing sent messages from my sent box out of the recipients inbox
Thank you!

1 Cevap

Bunu yapmak için size tablonun bazı yapısını değiştirmek gerekir, yoksa 'statü' sütunu kullanmak nasıl değişebilir.

İşte tablo yapısı bir değişiklik önermektedir olası bir çözüm olduğunu, ancak çalışması (ya da ilgili olabilir) daha fazla bilgi olmadan eğer ben emin olamaz:


Şu anda mesaj tablo sadece bir 'Status' sütun, gerçekten ne ihtiyacı 'Status Sender' sütun ve ayrıca bir 'Status Receiver' sütun vardır.

Gönderenin mesajı set the 'Status Sender' value to 'dead' siler, ve alıcı mesajı siler zaman set the 'Status Receiver' to 'dead' Ne zaman

Eğer 'Status Reciever' = 'alive' sorgulamak gerekir messages in a users inbox o gösterdiğinizi Bu demektir ve görüntülediğiniz zaman messages in a users sent folder, sizin için sorgulamak gerekir {[(3) }].


Note: This design doesn't bode well for scenarios where a single user sends a message to multiple recipients.