Запрос PHP не обновляется в форме db throught

Я работаю над проектом, который включает в себя функцию минимального сообщения / чата, у которой есть возможность поставить галочку, когда вы прочитали сообщение, и пометить пользователя.

Параметры флажка и галочки больше не работают после того, как я что-то отредактировал, но я больше не могу найти проблему.

Игра пока не поддерживает более новые версии PHP.

  • $ m ['id']; = 22
  • $ m ['read'] = 0

Запрос 1 = array (3) {["id"] => строка (2) "28" ["mark_read_x"] => строка (2) "10" ["mark_read_y"] => строка (2) "10"}

Запрос 2 = array (3) {["id"] => строка (2) "28" ["flag_user_x"] => строка (1) "8" ["flag_user_y"] => строка (1) "4"}

<?php
   $mid = $m['id'];

   if (isset($_POST['mark_read'])){
    $mid2 = $_POST['id'];
    $query2 = "UPDATE `user_messages` SET `read` = '1' WHERE `read` = '0' AND `user_messages`.`id` = '$mid2'";
    mysql_query($query2) or die(mysql_error());
    header("Refresh:0");
    }
?>

<?php if ($m['read'] === '0'){ ?>

<form method = "post">
   <input type = "hidden" name = "id" value = "<?php echo $mid; ?>">
   <input src = "tick.png" title = "Mark as read" type = "image" alt = "submit" name = "mark_read">
</form>

<?php } else { echo ''; } ?>

<?php
   if (isset($_POST['flag_user'])){
    $mid2 = $_POST['id'];
    $query3 = "UPDATE `user_messages` SET `flagged` = '1' WHERE `flagged` = '0' AND `user_messages`.`id` = '$mid2'";
    mysql_query($query3) or die(mysql_error());
    header("Refresh:0");
   }
?>

<form method = "post">
   <input type = "hidden" name = "id" value = "<?php echo $mid; ?>">
   <input src = "exclamation.png" title = "Flag message" type = "image" alt = "submit" name = "flag_user">
</form>

Что насчет того, что не работает?

aynber 13.04.2018 14:29

Функции обязательное предупреждение mysql_ * устарели с PHP 5.5.0 и удалены с PHP 7.0.0. Измените код, чтобы использовать вместо этого PDO или mysqli.

aynber 13.04.2018 14:29

Ваш сценарий подвержен риску Атака с использованием SQL-инъекции. Посмотрите, что случилось с Маленькие столики Бобби. Даже если вы избегаете ввода, это небезопасно!. Используйте подготовленные параметризованные операторы.

John Conde 13.04.2018 14:30

@aynber Он ничего не обновляет в таблице из этого кода, но когда я вставляю его как sql в таблицу, он работает правильно ..

Christian 13.04.2018 14:34

Тогда вам нужно выполнить базовое устранение неполадок. var_dump($_POST) и проверьте mysql_errors

aynber 13.04.2018 14:36

@aynber первый запрос = массив (3) {["id"] => строка (2) "28" ["mark_read_x"] => строка (2) "10" ["mark_read_y"] => строка (2) "10" } второй запрос = массив (3) {["id"] => строка (2) "28" ["flag_user_x"] => строка (1) "8" ["flag_user_y"] => строка (1) "4"}

Christian 13.04.2018 15:28

«Параметры флажка и галочки больше не работают после того, как я что-то отредактировал, но я больше не могу найти проблему» - en.wikipedia.org/wiki/Version_control

Mawg says reinstate Monica 15.04.2018 12:51

Кроме того, некоторые IDE, такие как Затмение, будут сохранять копию каждый раз, когда вы сохраняете, и тогда вы можете «сравнивать с ... историей loacl»

Mawg says reinstate Monica 15.04.2018 12:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
8
69
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Очевидно, что вы всегда должны использовать атрибут action = "" всякий раз, когда используете тег формы, даже если вы выполняете действие на той же странице. Вы должны всегда упоминать action = "" или action = "#" в теге формы и использовать функцию mysqli_*, поскольку это улучшенная версия.

Ответ принят как подходящий

Измененный

<input src = "tick.png" title = "Mark as read" type = "image" alt = "submit" name = "mark_read">

к

<button type = "submit" name = "mark_read" style = "padding: 0; border: none;"><img title = "Mark as read" src = "tick.png" /></button>

Тип ввода не смог отправить данные из-за типа изображения. теперь работает нормально.

Ах, я предполагал, что у вас есть функция JS, обрабатывающая отправку формы. Мне было интересно, какого черта те входы, которые вы использовали ...

Nerdi.org 16.04.2018 18:36

Другие вопросы по теме