Форма подается дважды

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

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

Кто-нибудь знает что-нибудь еще, что может быть причиной отправки формы дважды?

2 ответа

Решение

Как говорит Дагон, проверки на стороне сервера - ваш друг. Дайте каждому экземпляру формы случайно сгенерированный ключ (было бы неплохо guid) и сохраните его в базе данных. Не принимайте формы, содержащие ключ, который уже существует в БД.

Кроме того, вы просто отображаете HTML после выполнения логики обработки формы? Если это так, попробуйте перенаправить после обработки формы.

Это способ: после того, как пользователь нажмет кнопку отправки формы, отключите его с помощью JavaScript. Это должно помешать пользователю дважды отправить форму случайно. Это работает для всех сайтов, которые мы реализуем, как, потому что. Поскольку иногда пользователь теряет терпение и нажимает кнопку отправки формы несколько раз, поэтому вы получаете двойные запросы. Что нужно, чтобы убедиться, что он работает для всех браузеров (я имею в виду отключение кнопки).

Также вы можете сделать это на стороне сервера, это просто сложнее.

Мы используем похожий на голосование ответ в кнопке включения / выключения отправки с кодом сервера jQuery и Coldfusion

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