@Iossarian

Как настроить кнопку для удаления записи из БД?

Суть вопроса: нужно напить кнопку для удаления записи из БД. Имеем форму:

<form class="lot-item__form" action="../lot.php?id=<?=$id;?>" method="post">
            <?php $classname = isset($error['com']) ? "--invalid" : "";?>
          <p class="lot-item__form-item <?=$classname;?>">
            <label for="com">Ваш комментарий</label>
              <textarea name="com" id="com" cols="33" rows="8"></textarea>
              <button type="submit" class="button">Комментировать</button>
              <button type="submit" name="del" class="button">Удалить пост</button>
          </p>
        </form>

Это форма отправки комментариев к посту в блоге. В этой же форме прикрутил кнопку удаления записи из БД. Настройки позволят удалить пост только автору, но вот как верно реализовать логику? Пробовал так:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

if (isset($_POST['del'])) {
    $sql = 'DELETE * FROM post WHERE id = "' .$id. '";';
    $res = mysqli_query ($con, $sql);
    }
}

Подскажите, в чем ошибки и как сделать правильно? Спасибо.
  • Вопрос задан
  • 1361 просмотр
Пригласить эксперта
Ответы на вопрос 3
@ponaehal
Не силен в PHP, но вдруг подумалось что будет не айс если какой-нибудь доброжелатель в качестве id вам передаст строку вида: 1235" + "or 1=1" + ". ИМХО, надо бы как то залатать...
Ответ написан
Комментировать
@shushpanio
shushpanio
Плохая идея что-то полностью удалять.
Быть может логичнее сделать статью не активной? Т.Е. по нажатию кнопки в какой-то табличке формата
ID_статьи | Active

для статьи поставится значение например 0 и статья перестанет отображаться в ленте, но при этом сохранится в БД и в случае чего ее всегда можно будет восстановить
Ответ написан
@Iossarian Автор вопроса
Проблема была во внешних ключах. Комментарий ссылались на запись и потому запись нельзя было удалить без установки внешнего ключа при удалении CASCADE
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы