Всех приветствую! Попросили посмотреть довольно странный баг. Вообщем, есть форма заказа. Есть отдельный скрипт обрабатывающий POST-данные (т.е. в action="" прописан скрипт НЕ текущей стр-цы). Все работает отлично. Однако владелец сайта жалуется на один баг. Периодически, изредка, идут замноженные заявки. Это может произойти раз в полтора месяца, а может и пару раз в неделю. Т.е. клиент говорит что сделал заказ, и ОДИН раз нажал на кнопку "отправить". Потом идет куча заявок(+уведомлений клиенту, т.е. на каждую заявку-есть уведомление клиенту об успешной заявке). 1) "Куча" заявок может прийти как Разом, так и разорванно по времени, например идут в течение неск-ких дней. 2) На сервере есть файл в котором храниться id последней заявки. PHP скрипт, при отправке заявки каждый раз считывает id, и увеличивает его на 1. Дак вот замноженные заявки идут ВСЕ под НОВЫМИ номерами. С одной стороны это пахло бы тем что не сброшены POST данные. Все помнят это думаю, когда они не сброшены, если в action="" прописан тот же скрипт что и генерирует страницу с формой (помойму так да?), то при refresh-е, будет идти столько заявок сколько вы будете жать кнопку "обновить" . Решалось тем что отправляли header() с $_SERVER['PHP_SELF'], чтобы сбросить POST данные. Однако, во-первых, я тестировал как только можно, жал кнопку "обновить", во всех браузерах, жал и повторно на кнопку "отправить" и хоть бы фиг, мне идет ТОЛЬКО по ОДНОЙ заявке. Тем более Firefox писал бы такое http://c2n.me/3tyFFRu , однако он этого не выдавал. Пробовал и выводить POST массив, он пуст(при повторных рефреш-ах). Во-вторых, если бы проблема была в POST-массиве, то не понятно как тогда идут заявки в течении НЕСК-КИХ дней (клиенты каются что делали завку 1 раз)? -USER_AGENT проверялось, ничего специфичного не было. Т.е. каких-то специфичных браузеров, или операционок. Последняя замноженная заявка была сделана под Windows7, Google Chrome. -Все клиенты, у кого это происходило, вроде нормальные (в том смысле что не флудеры, а сделавшие реальный заказ, оплатившие деньги и тп. И в том числе сами писавшие с жалобой на замноженные уведомления об успешной заявке) Как я только не тестировал, - мне шло всегда по одной заявке. В какую хоть сторону копать? Как то уже даже самому интересно, просто=))
Omg. Что-то мне подсказывает что простым вангованием дело не обойдётся. Давай хоть какой код, желательно обработчика формы. Ели он суёт данные в базу, то дело в нём.
Код (PHP): ob_start(); print_r($_SERVER['HTTP_USER_AGENT']); $http_user_agent_content = ob_get_contents(); ob_end_clean(); Открыл, закрыл.
Проблема явно не в этом участке. Пробовалось, убираться. Если же вы о качестве кода, то писала его одна из начинающих московских студий, не я.
Простите, я вам скорее всего не помогу, но честно признаюсь, что хотел. Однако сеи строки, да и само произведение строго "не очень". Боюсь тут проблемы не отдельно взятого места, а структуры как таковой. С этим здесь полный капец.
включение предварительной загрузки страниц в браузере не может оказывать такое влияние на скрипт? заявку отправляет авторизованный пользователь? логи авторизаций и датавремя заявок?
Хмм любопытная фича, буду мониторить данную тему. Но я как понял она вроде по умолчанию включена, нет? Либо если указываются rel="prefetch" у ссылок. Там такого нет, проверил Нет не авторизованные. Любой гость может сделать заявку.
Да не проблема конечно, старина=) Мне просто самому как то любопытно стало=) Ну как блин скрипт на сервере может САМ выполняться спонтанно? Самое странное что заявки чаще бахают не разом, а идут в течение НЕСК-КИХ дней.