Действия контроллера вызываются дважды – приложение Php

Я новичок, поэтому, если мне не хватает какой-либо информации или чего-то еще, пожалуйста, дайте мне знать, и я предоставлю ее. Я уже искал информацию об этой ошибке, но пока ничего не нашел. Итак, вот сделка. Некоторые из моих действий с контроллерами вызываются дважды, и я только заметил, что, когда мне было интересно, почему я отправлял НЕКОТОРЫЕ письма дважды (у меня есть приложение, включенное почтовым клиентом). и только после регистрации, что я делаю, я заметил, что контроллер дважды вызывается … Кстати, это происходит только тогда, когда я вызывал действие из ссылки вне приложения или набрав URL-адрес. Если я не проясняюсь или что-то не хватает, пожалуйста, разместите здесь все равно, чтобы я мог добавить дополнительную информацию ..

Заранее спасибо!

Solutions Collecting From Web of "Действия контроллера вызываются дважды – приложение Php"

Совокупность возможных ответов из других источников в соответствии с моим комментарием:

  1. <img src = "" /> и родственники.

    Если у вас есть места, в которых вы создаете атрибут src тега img , убедитесь, что он не пуст в любых случаях уродства; несколько браузеров берут пустой src в качестве подсказки для повторной загрузки страницы. 1 , 2 , 3

    То же самое верно для пустой значки, javascript или css href – вообще-то, где вы просите браузер получить внешний ресурс, но не указывается url, даже в css 1 .

    Феномен, возможно, более понятен, если вы считаете, например, когда вы отправляете данные формы, когда делаете <form action = ""> (или даже просто <form> ), а именно одну и ту же страницу.

  2. .htaccess shenanigans.

    Проверьте правило (ы) переписывания: заставляете ли вы делать обратный переход к вашему скрипту для любого статического контента (например, favicon 1 )? Не несуществующие файлы запускают вызов вашего сценария и являются ссылкой на внешние ресурсы, указывающие на одну (например, старую таблицу стилей CSS, которая была окончательно удалена из файловой системы, но кто-то забыл удалить ее из источника HTML)?

  3. Браузерные отладчики.

    Некоторые отладчики на основе браузера, например firebug 1 , отправят второй запрос на страницу в зависимости от обстоятельств, чтобы собрать данные, которые изначально не были предоставлены им самим браузером. Убедитесь, что вы этого не понимаете.

Посмотрите, поможет ли кто-нибудь из вас.

Не видя фактического кода приложения, мне остается просто угадать – однако, я знаю, по крайней мере, одну полуизвестную ошибку на этой арене, см. http://blog.codekills.net/archives/27-Fun-with- Firefox-Jitters.html для деталей – в основном, это происходит, когда <tr> имеет обработчик onclick и <a> внутри, который идет на тот же URL … и даже если это не то, что делает ваше приложение, возможно вы можете получить представление о том, как они решили отладить проблему.

Для меня наличие Firebug open вызывало повторение страницы.

После нескольких часов отладки моя проблема была динамически установленным тегом css background-image. Если изображения не было – background-image: url () – второй запрос будет возвращен контроллеру после загрузки страницы.

В любом случае кто-то другой делает то же самое.

Моя конкретная версия проблемы и исправление

  • представление этой формы работало на производственном сервере, но не «localhost»,
  • Для Firefox: форма работала в обоих местах. Для Chrome: работает только на производственном сервере
  • установка контрольных точек в моем контроллере проблемы подтвердила, что он вызывался несколько раз (duh), а защита CSRF в этой форме получалась в результате.

Затем я нашел эту тему: http://ellislab.com/forums/viewthread/210318/

Мое решение касалось значка. Атрибут src был не совсем прав. У меня был значок в корневом каталоге, и он загружался в hompage, но не в других (не заметил этого некоторое время). В любом случае, обеспечив абсолютный путь к значку, он решил

Не знаю, действительно ли у вас ДОЛЖЕН иметь значок, но, как упоминалось выше, убедитесь, что все ресурсы, которые вы втягиваете (img / js / css), должным образом ссылаются, чтобы избежать повторной попытки браузера запросить страницу