Белый экран в обучающем компоненте.

Фотобитвы icms 2.1.1

 
Посетитель
small user social cms
Медаль
Сообщений: 120
Здравствуйте друзья.
Учусь писать компоненты, смотрел видео урок по написанию фотобитвы.

В 3 видео возникла проблема, при добавлении последнего участника битвы... белый экран. =( соответственно сообщение в ЛС админу что битва перешла на статус модерации тоже не приходит.
Может быть кто то учился и тоже сталкивался с этой проблемой? Как побороли подскажите пожалуйста.

___________
Версия cms 2.1.1
Hostis humanus generis
Посетитель
small user social cms
Медаль
Сообщений: 150
Смотрел, но не повторял действия. Взгляните исходники.
Хотите сказать спасибо, просто увеличьте карму!
Делай добро и бросай его в воду!
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 120
Aryuts:

Смотрел, но не повторял действия. Взгляните исходники.

Смотрел исходники. Всё одинаково. Для верности залил исходники вместо того что писал. Результат тот же.
Hostis humanus generis
Посетитель
small user social cms
Медаль
Сообщений: 150
По возможности взгляну. Может разработчики подскажут.

P.S. Загляните в блог разработчика. Там вроде обсуждались ошибки.
Хотите сказать спасибо, просто увеличьте карму!
Делай добро и бросай его в воду!
Посетитель
small user social cms
Медаль
Сообщений: 120
Aryuts:

По возможности взгляну. Может разработчики подскажут.

P.S. Загляните в блог разработчика. Там вроде обсуждались ошибки.

Спасибо. Пойду искать инфу =)
Hostis humanus generis
Посетитель
small user social cms
Медаль
Сообщений: 150
Пока не за что. Учтите, что компонент писался под версию 2.0. Проверьте в ней.
Хотите сказать спасибо, просто увеличьте карму!
Делай добро и бросай его в воду!
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1344
Урок первый.

Если в PHP скрипте происходит ошибка, то выполнение скрипта прерывается и в браузер выводится текст ошибки, обычно содержащий указание на файл и строку, приведшую к ошибке. Но вывод ошибок в браузер на рабочих серверах очень часто отключен, т.к. это прямая угроза безопасности. Вместо этого, тексты ошибок обычно складываются в лог (текстовый файл), который чаще всего называется error.log и лежит где-то рядом с папкой сайта (если речь идет о стандартном виртуальном хостинге).

Соответственно, получая "белый экран" вы должны узнать его причину (текст ошибки). Иначе это загадка для телепатов.
Варианты действий:

1. Посмотреть в лог ошибок. Если не знаете где он - спросить у хостера или сисадмина. Лог может содержать много записей, поэтому нужно смотреть по времени, указанному в каждой строке. Не нужно постить весь лог целиком. Засеките время, в которое вы открываете страницу с ошибкой и ищите в логе строки по этому времени.

2. Включить вывод ошибок в браузер. Либо через php.ini, установив директиву display_errors в On:
Код PHP:
  1. display_errors = On
.
Либо, через .htaccess в корне сайта, добавив туда правило:
Код PHP:
  1. php_value display_errors 1
.
После получения текста ошибки его вывод нужно отключить обратно. Выводить ошибки на рабочих сайтах не безопасно, т.к. они могут выдать различную информацию злоумышленникам.

Получив текст ошибки вы с вероятностью в 90% сами поймете в чем дело.
Посетитель
small user social cms
Медаль
Сообщений: 120
r2:

Урок первый.

Скрытый текст виден только зарегистрированным пользователям


В том то и дело, зная ошибку я бы сам исправил. Проблема в том что ошибка невыводится. Пробовал оба варианта и через эйчтиаксесс, и через настройки пхп ини...
Очень странно просто, белый экран.

Я больше скажу, я даже знаю где ошибка, он в контроллере join.php в функции обработки добавления фотки в битву. Но так как я весьма посредственно знаком с пхп, а тем паче с ООП синтаксисом пхп... найти эту ошибку и исправить, мне очень сложно.. почти не возможно. Именно поэтому я и прошу помощи тут.
Что странно... в видео уроке, всё работает. Тот же самый код у меня на сайте выдаёт белый экран. Очень странно. Возможно что то было изменено в версии 2.1.1 ? Как я понял урок снимали на версии 2.0?
З.Ы. error.log не появляется. Что тоже странно.
И ещё Важная думаю вещ. Уведомление на месенджер админа о том что битва ждёт модерации не приходит. Хотя сама битва меняет статус на "на проверке" и в БД все данные улетают.
Вероятно что то тут вот не так:
Код PHP:
  1. if ($battle['users_count'] >= $battle['min_users']){
  2.  
  3. $this->model->setBattleStatus($battle_id, photobattle::STATUS_MODERATION);
  4.  
  5. $messenger = cmsCore::getController('messages');
  6.  
  7. $messenger->addRecipient( $this->options['admin_id'] );
  8.  
  9. $notice = array(
  10. 'content' => sprintf(LANG_PHOTOBATTLE_MODERATION_NOTICE, $battle['title']),
  11. 'actions' => array(
  12. 'view' => array(
  13. 'title' => LANG_SHOW,
  14. 'href' => href_to($this->name, 'battle', $battle_id)
  15. )
  16. )
  17. );
  18.  
  19. $messenger->sendNoticePM($notice);
  20.  
  21. }
  22.  
  23. $this->redirectToAction('battle', array($battle_id));
  24.  
Редактировалось: 4 раз (Последний: 6 сентября 2014 в 13:13)
Hostis humanus generis
Посетитель
small user social cms
Медаль
Сообщений: 120
Не будет помощи страждущим... пичаль.
Hostis humanus generis
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1344
Блицкриг:
Не будет помощи страждущим... пичаль.
Так телепатов нету. Без текста ошибки это тыкать пальцем в небо. Вам нужно разобраться почему логи не пишутся. Без логов программировать тот еще мазохизм. Если хостинг коммерческий, то лучше всего обратиться в саппорт с этим вопросом.
Посетитель
small user social cms
Медаль
Сообщений: 120
r2:

Блицкриг:
Не будет помощи страждущим... пичаль.
Так телепатов нету. Без текста ошибки это тыкать пальцем в небо. Вам нужно разобраться почему логи не пишутся. Без логов программировать тот еще мазохизм. Если хостинг коммерческий, то лучше всего обратиться в саппорт с этим вопросом.


В логах ошибок может не быть если ошибка не на стороне сервера. Но у меня с логами всё в порядке. Прекрасно пишутся, так что хостер путёвый.

Проверял вот так:

- Удаляю лог файл если есть.
- Захожу на сайт, в фотобитвы.
- Регистрируюсь в битве за последнего учасника - белый экран, уведомление не пришло.
- Перехожу назад, смотрю список битв. Битва запустилась, записалось в БД всё прекрасно. То есть не сработала отправка уведомления и неверно (или вообще не сработал) редирект. Хотя в браузерной строке адрес тот что надо.
- Захожу на хостинг - лог файла нету.

Правлю скрипт любого другого компонента что б появилась ошибка, убираю запятую или ещё что-нибудь.

Захожу на сайт - конечно же ошибка.
Захожу на хостинг - лог файл туточки. И всё в нём нарисовано как есть.

Итог: С белым экраном непонятный глюк или ошибка не на стороне сервака или начинается второе пришествие христа... больше ничего в голову не приходит.

UPD: И да кстати, уведомления работают нормально. То есть от других компонентов прекрасно приходят. Только с фотобатлами беда.
Редактировалось: 2 раз (Последний: 11 сентября 2014 в 11:22)
Hostis humanus generis
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 692
В логах ошибок может не быть если ошибка не на стороне сервера
А где тогда, на подсервере что ли? Он либо отдал информацию, либо не отдал, третьего не дано....... Возможно это вообще не ошибка, а кокой нить die() где-то остался. Включайте отладку и смотрите что происходит, зачем гадать.
Skype: pasha--g
InstantCMS Team
small user social cms
МедальКубок зрительских симпатийАвторитет форума
Сообщений: 1344
Блицкриг, нужно локализовать проблему.
Комментируйте строки, вставляйте echo, чтобы посмотреть до какого момента выполнение скрипта идет и на какой строке обрывается.
Или поставьте xdebug какой-нибудь
В общем, стандартный процесс отладки
Посетитель
small user social cms
Медаль
Сообщений: 120
Pasha:

В логах ошибок может не быть если ошибка не на стороне сервера
А где тогда, на подсервере что ли? Он либо отдал информацию, либо не отдал, третьего не дано....... Возможно это вообще не ошибка, а кокой нить die() где-то остался. Включайте отладку и смотрите что происходит, зачем гадать.

Нет не на подсервере. Ошибка может быть в js например... такое вам в голову не приходило?
Отладку включал, даже варнингов нету.
Hostis humanus generis
Посетитель
small user social cms
Медаль
Сообщений: 120
r2:

Блицкриг, нужно локализовать проблему.
Комментируйте строки, вставляйте echo, чтобы посмотреть до какого момента выполнение скрипта идет и на какой строке обрывается.
Или поставьте xdebug какой-нибудь
В общем, стандартный процесс отладки
Я попробую, как раз сейчас курю статьи на тему дебаггинка. В пхп я не очь, с ООП вообще только только познакомился smile Так что пока с трудом даётся.
Hostis humanus generis
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.