HTML: <form action='test.php' method='POST'> <input type='hidden' name='id_goods' value='333'> <input type='submit' name='add_cart' value='Добавить в корзину'> </form> Код (Javascript): $('body').on('click', 'input[name=add_cart]', function(e){ e.preventDefault(); var $formData = new FormData(); $formData.append('id_goods', $(this).prev('input[name=id_goods]').val()); $.ajax({ type: "POST", processData: false, contentType: false, url: "test.php", data: $formData }); }); При изменении значения value='333', например, на value='33311' через панель разработчика любого браузера и нажатии на кнопку submit, к php-обработчику уходят неправильные данные. Как это можно исправить?
в консоли скриптом меняй значение Код (Javascript): $('input[name="id_goods"]').val(33311); и уже после отправляй форму, раз уж так хочется. хотя проще при тестировании убрать hidden и вводить в инпут число как обычно.
Что именно? Какие данные уходят? Какие ожидаются? В чем проблема? В том, что ты пытаешься доверять данным, приходящим с клиента, не проводя проверку на сервере? Никогда не оставляй на совесть пользователя какие-то критические данные. Никогда.
Идет выборка товаров из базы данных. С помощью цикла формируется форма для отправки товара в корзину. ID товара заношу в input type=hidden. Товар в корзину, хотелось бы, чтобы уходил без перезагрузки страницы. Использую Ajax - код указал вначале. Изначально в поле name='id_goods' value='333' такие данные. Через панель разработчика браузера меняю name='id_goods' value='222'. Нажимая кнопку "Добавить в корзину" и к обработчику уходит value='222'. Данные на вредоносный код проверяю. Но приходит ID не того товара для которого была предназначена форма. Что я делаю неправильно?
А ничего, это норма. По пришедшему ID товара пробивай цену в БД, забирай количество от клиента, и выставляй ему счет на покупку того, что он начудил. То есть вот, это вообще не проблема ни разу. Главное - цену формируй на стороне сервера, чтобы клиент не мог купить что-то дорогое за копейки. А так, если он выбрал 2шт товара "Тетрис" и подменил ID тетриса на ID макбука, то, со стороны сервера, чем это отличается от ситуации, если бы клиент попросил 2 макбука нормальным путем? Да ничем не отличается. --- Добавлено --- Не во вредоносном коде дело. Дело в том, чтобы данные были корректные и правильно обрабатывались.