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 :: Версия для печати :: Ошибка шаблонизатор Smarty
Форумы портала PHP.SU » » Вопросы новичков » Ошибка шаблонизатор Smarty

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

1. Estenny - 12 Июля, 2012 - 17:11:55 - перейти к сообщению
Добрый день.
Недавно стал использовать в своем проекте шаблонизатор Smarty и меня стала мучать проблема. Предположим, есть страница, которая еще ни разу не компилировалась => скомпилированный шаблон не сохранен еще в папке с этими шаблонами. Если же перейти на эту страницу, то в самый первый просмотр страницы вылезет ошибка, которая сообщает что не существует такого скомпилированного шаблона + еще какая-то ошибка.

Цитата:
Warning: filemtime() [function.filemtime]: stat failed for /Users/mac/Sites/cms/engine/smar ty/compile/c0ee78aa38160b5527d0b 28ee1f4c1f6f03dbf60.file.rating. html.php in smarty_resource.php on line 723

Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSK/4.0/no DST' instead in smarty_internal_templatecompiler base.php on line 169


Вот пример такой ошибки. Сама страница при этом кореектно загружается. Теперь, если я перезагружу страницу, то такой ошибки больше не наблюдается (как я понимаю из-за того, что шаблон уже сохранен и его можно найти).

Как решить такую проблему, ведь одно дело, если зайду я и увижу ошибку, а другое, если рядовой пользователь. Спасибо заранее.
2. Alho - 12 Июля, 2012 - 18:08:47 - перейти к сообщению
3. digi - 12 Июля, 2012 - 18:15:04 - перейти к сообщению
это не в смарти дело Улыбка) выполните phpinfo() , увидите там такойже варнинг... надо выставить date.timezone в php.ini

да, и разработку ведите всегда в режиме самого полного оповещения о всех ошибках! т.е. никаких ini_set("display_errors", "off"); в девелоперской машине ни в коем случае!
4. Estenny - 17 Июля, 2012 - 16:46:51 - перейти к сообщению
digi, установил, не помогло.
5. Estenny - 19 Июля, 2012 - 11:56:08 - перейти к сообщению
Что делать???
6. PATCH - 19 Июля, 2012 - 23:14:48 - перейти к сообщению
http://php.su/functions/?filemtime
http://php.su/functions/?f=strft...&choice=info
p.s а ошибки зачем повашему указаны в каких php файлах происходят?



Warning: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSK/4.0/no DST' instead in smarty_internal_templatecompiler base.php on line 169

Цитата:

Warning: strftime() [function.strftime]: Не безопасно полагаться на системные настройки даты и часового пояса . мы настоятельно рекоменудуем изменить в настройках date.timezone ( дата и часовой пояс) или использовать функцию date_default_timezone_set() . В случае если вы использовали один из этих перечисленных методов , и выскакивает это предупреждение , значит вы настроили timezone (часовой пояс) с ошибками (не верные индитефикаторы подробнее смотри в документации).Мы выбрали часовой пояс "ЕВРОПА/МОСКВА"для "MSK/4.0" для функции в smarty_internal_templatecompiler base.php on line 169

далее идем на php.net и видем ОХ нефигаж се

Since PHP 5.1.0 (when the date/time functions were rewritten), every call to a date/time function will generate a E_NOTICE if the timezone isn't valid, and/or a E_WARNING message if using the system settings or the TZ environment variable.

Цитата:

Начиная с PHP 5.1.0 (когда функции даты / времени были переписаны).
каждое обращение к функциям даты / времени будет генерировать E_NOTICE, если часовой пояс не является допустимым, то выдаст сообщение E_WARNING, если используются системные настройки или переменную окружения TZ(TimeZone)(Часовой Пояс)


из этого следует что у вас или стандартные настройки date.timezone или же вы не правильно настроили Индитификаторы.
еще классная особенность.

5.3.0 Now throws E_WARNING rather than E_STRICT.


Цитата:
начиная с версии 5.3.0 будет кидать ошибку E_WARNING замест E_SCRIPT


p.s перевод мб и кривоват но смысл понятен (я сам не профессионал в английском))
7. Estenny - 25 Июля, 2012 - 19:07:36 - перейти к сообщению
PATCH, это я понял, более того, я нашел ошибку: я задавал эти настройки после подключения Smarty.
Теперь работает практически все, но одна ошибка еще осталась.

Цитата:
Warning: filemtime() [function.filemtime]: stat failed for /Users/mac/Sites/cms/engine/smar ty/compile/081a981bc86ee0d738821 28f3550d35fde0bba1e.file.templat e.html.php in smarty_resource.php on line 723


Ну логично, что появляется такая ошибка, ведь файл еще не был создан, следовательно, нечего возвращать. Но должно же быть лекарство! Это же не задумка такая.
(Добавление)
Нашел: это из-за моей функции обработки ошибок, нужно поправить ее.

 

Powered by ExBB FM 1.0 RC1