За последние 24 часа нас посетили 17044 программиста и 1627 роботов. Сейчас ищут 1872 программиста ...

Изменение данных формы через панель разработчика браузера

Тема в разделе "JavaScript и AJAX", создана пользователем IGAS, 4 фев 2018.

  1. IGAS

    IGAS Новичок

    С нами с:
    4 фев 2018
    Сообщения:
    4
    Симпатии:
    0
    HTML:
    1. <form action='test.php' method='POST'>
    2.     <input type='hidden' name='id_goods' value='333'>
    3.     <input type='submit' name='add_cart' value='Добавить в корзину'>
    4. </form>
    Код (Javascript):
    1. $('body').on('click', 'input[name=add_cart]', function(e){
    2.     e.preventDefault();
    3.     var $formData = new FormData();
    4.     $formData.append('id_goods', $(this).prev('input[name=id_goods]').val());
    5.     $.ajax({
    6.         type: "POST",
    7.         processData: false,
    8.         contentType: false,
    9.         url: "test.php",
    10.         data: $formData
    11.     });
    12. });
    При изменении значения value='333', например, на value='33311' через панель разработчика любого браузера и нажатии на кнопку submit, к php-обработчику уходят неправильные данные. Как это можно исправить?
     
  2. rewuxiin

    rewuxiin Активный пользователь

    С нами с:
    17 апр 2012
    Сообщения:
    611
    Симпатии:
    87
    в консоли скриптом меняй значение
    Код (Javascript):
    1. $('input[name="id_goods"]').val(33311);
    и уже после отправляй форму, раз уж так хочется.
    хотя проще при тестировании убрать hidden и вводить в инпут число как обычно.
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Что именно? Какие данные уходят? Какие ожидаются? В чем проблема? В том, что ты пытаешься доверять данным, приходящим с клиента, не проводя проверку на сервере? :)

    Никогда не оставляй на совесть пользователя какие-то критические данные. Никогда.
     
  4. IGAS

    IGAS Новичок

    С нами с:
    4 фев 2018
    Сообщения:
    4
    Симпатии:
    0
    Идет выборка товаров из базы данных. С помощью цикла формируется форма для отправки товара в корзину. ID товара заношу в input type=hidden. Товар в корзину, хотелось бы, чтобы уходил без перезагрузки страницы. Использую Ajax - код указал вначале. Изначально в поле name='id_goods' value='333' такие данные. Через панель разработчика браузера меняю name='id_goods' value='222'. Нажимая кнопку "Добавить в корзину" и к обработчику уходит value='222'. Данные на вредоносный код проверяю. Но приходит ID не того товара для которого была предназначена форма. Что я делаю неправильно?
     
  5. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А ничего, это норма. По пришедшему ID товара пробивай цену в БД, забирай количество от клиента, и выставляй ему счет на покупку того, что он начудил. То есть вот, это вообще не проблема ни разу. Главное - цену формируй на стороне сервера, чтобы клиент не мог купить что-то дорогое за копейки. А так, если он выбрал 2шт товара "Тетрис" и подменил ID тетриса на ID макбука, то, со стороны сервера, чем это отличается от ситуации, если бы клиент попросил 2 макбука нормальным путем? Да ничем не отличается.
    --- Добавлено ---
    Не во вредоносном коде дело. Дело в том, чтобы данные были корректные и правильно обрабатывались.
     
    SProx нравится это.
  6. IGAS

    IGAS Новичок

    С нами с:
    4 фев 2018
    Сообщения:
    4
    Симпатии:
    0
    Спасибо!