Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Повторное исполнение кода
Форумы портала PHP.SU » » Вопросы новичков » Повторное исполнение кода

Страниц (1): [1]
 

1. Netix - 17 Сентября, 2011 - 10:55:21 - перейти к сообщению
Может не сюда пишу, но чего это за ерунда понять не могу.

Суть: отлаживаю некий код, банальными log'ом. Смотрю он мне как будто один и тот же код выполняет дважды. Добавил в каждую строку, которая выводиться в log, имя файла и номер строки. Оказалось, что PHP создает некий временный файл и вначале выполняет его, а потом повторно код уже непосредственно из исходного.

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. //Проверяем что пришло
  3.         if (isset($_REQUEST["isedit"])) {
  4.                 //Начало процесса редактирования
  5.                 debug_str("=============================================================="." файл: ".__FILE__." строка: ".__LINE__);
  6.                 debug_str("Начинается процесс редактирования дома с ID=".$_REQUEST["hID"]);
  7.                 $isEdit=true;
  8.                 $hID=$_REQUEST["hID"];
  9.                 $home=HomeListControl()->FindByID($hID);
  10.                 $shortAdr=$home->ShortAddr;
  11.                 $fullAdr=$home->FullAddr;
  12.                 $homeType=$home->HomeType;
  13.                 $floorCount=$home->FloorCount;
  14.                 $entranceCount=$home->EntranceCount;
  15.                 $apartCount=$home->ApartamentCount;
  16.                 $baseApartCount=$home->BaseApartCount;
  17.                 $dateDelivery=$home->DateOfDelivery;
  18.                 $commonSquare=$home->CommonSquare;
  19.                 $liveSquare=$home->LiveSquare;
  20.                 $errorType=1;  
  21.         }
  22.         elseif (isset($_REQUEST["createBtn"])) {
  23.                 //Либо создание, либо редактирование
  24.                 //В случае редактирования нам будет доступен hID
  25.                
  26.                 debug_str("=============================================================="." файл: ".__FILE__." строка: ".__LINE__);
  27.                 debug_str("Начинается процесс создания или редактирования дома ");
  28.                
  29.                 if (isset($_REQUEST["hID"])) { $hID=$_REQUEST["hID"]; }
  30.                 else {$hID=-1;}
  31.  


А вот что в логе:

CODE (html):
скопировать код в буфер обмена
  1.  
  2. ============================================================== файл: T:\home\virtual\second\Admin\Homes\createhome_cicoxrnp81.php строка: 63
  3. Начинается процесс создания дома файл: T:\home\virtual\second\Admin\Homes\createhome_cicoxrnp81.php строка: 64
  4. ============================================================== файл: T:\home\virtual\second\Admin\Homes\createhome.php строка: 63
  5. Начинается процесс создания дома файл: T:\home\virtual\second\Admin\Homes\createhome.php строка: 64
  6. Создаем НОВЫЙ СПИСОК ДОМОВ
  7. Загружаем дом с ID=5
  8. В конструкторе HomeControl ID=5
  9. HomeControl::LoadData()
  10. В методе HomeControl::LoadData() прошли условие на валидность ID
  11. Метод HomeControl::LoadData() - при запросе вернул : 1 записей
  12. Запрос для загрузки сведений о доме:
  13. Resource id #43
  14. Загруженный объект: Object id #3
  15. HomeControl::SaveData()
  16.  


Что это может быть?

И такая катавасия почти во всем коде. При этом например метод сохранения ::SaveData() может вызываться вообще раз 10 ДО реального вызова этого метода мной.

Помогите плиз!!! Хотя бы в какую сторону капать
2. OrmaJever - 17 Сентября, 2011 - 11:00:31 - перейти к сообщению
это может быть браузер, некоторые браузеры запрашивают страницу 2 раза (непонятно зачем), ну а к серверу пришло 2 запроса вот он их и выполнил. Нужно найти хороший снифер и посмотреть что там браузер творит
3. caballero - 17 Сентября, 2011 - 16:25:02 - перейти к сообщению
Цитата:
PHP создает некий временный файл и вначале выполняет его, а потом повторно код уже непосредственно из исходного

Ничего подобного PHP не делает
это какой нибудь движок шаблонов типа Smarty или типа того
4. DeepVarvar - 17 Сентября, 2011 - 18:21:54 - перейти к сообщению
OrmaJever пишет:
некоторые браузеры запрашивают страницу 2 раза
Аааа вот тут подробнее пожалуйста!!! Ниндзя
5. OrmaJever - 17 Сентября, 2011 - 20:45:18 - перейти к сообщению
DeepVarvar пишет:
Аааа вот тут подробнее пожалуйста!!!

была давненько тема где вроде после обновления страницы с кодом

(или какойто похожий) добавлялось по 2 при одном обновлении страницы, в итоге по логам апача и снифере выяснелось что браузер запрашивает страницу 2 раза (вроде мозила).

 

Powered by ExBB FM 1.0 RC1