Глюк в функции удаления отправленной почты - PullRequest
2 голосов
/ 21 января 2010

Я все еще новичок. Итак, мой сайт имеет систему обмена сообщениями, которая позволяет пользователям удалять свои отправленные сообщения. Было обнаружено, что если я удаляю свои сообщения из моего «отправленного» ящика, он удаляет сообщение из папки входящих сообщений получателей. У меня есть два способа удалить сообщения из отправленной почты: «удалить все сообщения» и один за другим.

Вот мой код для стирания всех:

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

Итак, как мне остановить мой запрос от удаления отправленных сообщений из моего отправленного ящика из папки входящих сообщений получателя?

1 Ответ

2 голосов
/ 21 января 2010

Для этого вам может потребоваться изменить структуру таблицы или изменить способ использования столбца «status».

Вот потенциальное решение, которое предлагает изменить структуру таблицы, но я не могу быть уверен, будет ли она работать (или даже иметь отношение) без дополнительной информации:


В данный момент в вашей таблице сообщений есть только столбец «Статус» , для которого действительно нужен столбец «Отправитель статуса» и дополнительно «Получатель статуса» столбец.

Когда отправитель удаляет сообщение , установите для параметра «Состояние отправителя» значение «dead» , а когда получатель удаляет сообщение , установите для параметра «Status Receiver» значение «dead»

Это означает, что при отображении сообщений в папке входящих сообщений пользователя вам необходимо запросить 'Status Reciever' = 'alive' , а также при отображении сообщений. в папке отправленных пользователями , вам нужно запросить 'Status Sender' = 'alive' .


Примечание. Этот дизайн не сулит ничего хорошего для сценариев, когда один пользователь отправляет сообщение нескольким получателям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...