Я работаю над проектом, который включает в себя функцию минимального сообщения / чата, у которой есть возможность поставить галочку, когда вы прочитали сообщение, и пометить пользователя.
Параметры флажка и галочки больше не работают после того, как я что-то отредактировал, но я больше не могу найти проблему.
Игра пока не поддерживает более новые версии PHP.
Запрос 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>
Функции обязательное предупреждение mysql_ * устарели с PHP 5.5.0 и удалены с PHP 7.0.0. Измените код, чтобы использовать вместо этого PDO или mysqli.
Ваш сценарий подвержен риску Атака с использованием SQL-инъекции. Посмотрите, что случилось с Маленькие столики Бобби. Даже если вы избегаете ввода, это небезопасно!. Используйте подготовленные параметризованные операторы.
@aynber Он ничего не обновляет в таблице из этого кода, но когда я вставляю его как sql в таблицу, он работает правильно ..
Тогда вам нужно выполнить базовое устранение неполадок. var_dump($_POST) и проверьте mysql_errors
@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"}
«Параметры флажка и галочки больше не работают после того, как я что-то отредактировал, но я больше не могу найти проблему» - en.wikipedia.org/wiki/Version_control
Кроме того, некоторые IDE, такие как Затмение, будут сохранять копию каждый раз, когда вы сохраняете, и тогда вы можете «сравнивать с ... историей loacl»






Очевидно, что вы всегда должны использовать атрибут 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, обрабатывающая отправку формы. Мне было интересно, какого черта те входы, которые вы использовали ...
Что насчет того, что не работает?