Форма Double Post Issue - PullRequest
       4

Форма Double Post Issue

3 голосов
/ 25 июня 2010

Я понимаю, что двойные посты всегда были проблемой с формами.

Я использую маркерный метод на стороне сервера для решения этой проблемы, но я считаю, что он не работает безупречно. У меня есть система, настроенная на создание уникального токена для каждой формы, а затем запись этого токена в СЕССИИ после его публикации.

SESSION - это массив каждой формы, которую пользователь когда-либо опубликовал (для сброса по истечении SESSION), и при каждой отправке система проверяет in_array (), чтобы увидеть, была ли эта форма когда-либо опубликована ... если так, то это останавливает их.

Похоже, что в процессе работы система не может записать заполненный токен в СЕССИЮ достаточно быстро, чтобы справиться с двойным щелчком по кнопке отправки. Таким образом, повторное посещение старой страницы обрабатывается нормально, но двойной щелчок при отправке создает проблему.

Не уверен, что я могу сделать, чтобы решить эту проблему.

Ответы [ 3 ]

1 голос
/ 25 июня 2010

Как насчет отключения кнопки отправки сразу после нажатия (через Javascript, с обработчиком onClick)?Это, очевидно, не решит все проблемы, но может охватить случаи, когда система недостаточно быстра, чтобы записать токен в SESSION.

0 голосов
/ 31 мая 2018

У меня была такая же проблема, и я решаю с помощью jQuery. Я добавил класс singleClick в кнопку отправки там, я хотел бы иметь один клик, а также добавил немного кода JavaScript

<input type="submit" class="singleClick" value="Send Request">
    $(function () {
        $('.singleClick').on('click', function () {
            $(this).attr('disabled', true);
        });
    });
0 голосов
/ 25 июня 2010

У меня тоже была эта проблема с чем-то внутренним для компании, в которой я работаю. По моему опыту, люди нажимают несколько раз, потому что они не думают, что что-то происходит. Что я сделал, так это снял возможность отправки формы и отображал какое-то сообщение о том, что информация обрабатывается.

Всплывающие окна и просто отключение кнопки работают хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...