Страница 4 из 7

Re: Web морда (php) для серверных логов

Добавлено: 20:31, 21.01.2011
LorD
Столкнулся с проблемой на Win serv 2003

Код: Выделить всё

Strict Standards: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable 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/Helsinki' for '2.0/no DST' instead in C:\AppServ\www\commfort_logs\index.php on line 158
Немного поковырял шурупы в мозгах, нашёл способ решения проблемы. После того, как снёс данные строки

Код: Выделить всё

    $date = strftime('<nobr>%d %a %H:%M:%S</nobr>',strtotime($matches[2]." ".$matches[3]));
	$date = iconv('CP1251','UTF-8',$date);
    $events[$matches[1]]++;
    $comment = preg_replace('/('.implode('|',$patterns).')(.*)/','\1 <b><u>\2</u></b>',htmlspecialchars($matches[7]));
всё встало на свои места, и больше не выписывало ошибку :)
Ярослав будет тебе на заметку для решения совместимости разных ОС .

P.S.: Хоть правда без времени и года работает :)

Re: Web морда (php) для серверных логов

Добавлено: 20:56, 21.01.2011
Yaroslav
LorD писал(а):Столкнулся с проблемой на Win serv 2003

Код: Выделить всё

Strict Standards: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable 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/Helsinki' for '2.0/no DST' instead in C:\AppServ\www\commfort_logs\index.php on line 158
Проблема не совсем в этих строках и не в платформе.
Просто в php 5.3 ввели новые типы предупреждений.

В частности все функции, которые работают с датой, генерируют такое предупреждение, если в php.ini или в коде явным образом не указан часовой пояс.
Если вчитаться в предупреждение, то можно понять, что говорится: Не безопасно полагаться на таймзону окружения. Нужно использовать настройки ini или назначить часовой пояс во время выполнения.

Во время выполнения я не могу назначить зону, потому, что мой скрипт (теоретически) может запускаться как в Москве, так и в Комсомольске-на-Амуре. А разница в семь часовых поясов.

Поэтому если у кого-то такое возникает, для исправления впишите в php.ini строку

date.timezone = 'ваша_тайм_зона'

список доступных в php часовых поясов можно посмотреть тут: http://www.php.net/manual/en/timezones.php

Часть россии в Europe, а часть в Asia (это если кто не знает).
Если знаете свой часовой пояс, то введите

Etc/GMT+Х

где Х будет ваш часовой пояс. Но тогда я не знаю как будут обстоять дела с переходом на зимнее/летнее время.

Украина GMT+2
Москва GMT+3
Хабаровский край GMT+10

Подробнее о часовых поясах на википедии.

Re: Web морда (php) для серверных логов

Добавлено: 22:00, 21.01.2011
LorD
Но всё таки, как решить эту проблему?

Re: Web морда (php) для серверных логов

Добавлено: 22:44, 21.01.2011
Yaroslav
LorD писал(а):Но всё таки, как решить эту проблему?
Ответ на вопрос в предыдущем посте.

Re: Web морда (php) для серверных логов

Добавлено: 00:01, 23.01.2011
Chudik
LorD писал(а):Столкнулся с проблемой на Win serv 2003

Код: Выделить всё

Strict Standards: strftime() [function.strftime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable 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/Helsinki' for '2.0/no DST' instead in C:\AppServ\www\commfort_logs\index.php on line 158
Изменил в php.ini строку на date.timezone = 'Etc/GMT+2'
Сейчас всё тоже самое пишет, с разницей в номере строки якобы где находится ошибка :(

C:\AppServ\www\commfort_logs\index.php on line 174

Re: Web морда (php) для серверных логов

Добавлено: 00:00, 24.01.2011
Yaroslav
Chudik писал(а): Изменил в php.ini строку на date.timezone = 'Etc/GMT+2'
Сейчас всё тоже самое пишет, с разницей в номере строки якобы где находится ошибка :(

C:\AppServ\www\commfort_logs\index.php on line 174
После изменений в php.ini, если php настроено как модуль Apache, необходимо перезапустить Apache.

Если после перезагрузки Apache ошибка останется, просьба привести полный текст ошибки тут.

Re: Web морда (php) для серверных логов

Добавлено: 12:11, 24.01.2011
Chudik
Yaroslav писал(а): Если после перезагрузки Apache ошибка останется, просьба привести полный текст ошибки тут.
Остановил, и, потом снова запустил апач. Ошибка в скрине.

Re: Web морда (php) для серверных логов

Добавлено: 12:17, 24.01.2011
Yaroslav
Судя по скрину, или не прописал или не в том файле :)

у меня вот так:

date.timezone = 'Europe/Helsinki'

И всё замечательно работает без предупреждений.

Re: Web морда (php) для серверных логов

Добавлено: 12:35, 24.01.2011
Chudik
Прописал в всех подчёркнутых жёлтым цветом php.ini : date.timezone = 'Europe/Helsinki'
Ошибка всё равно не убирается!

Re: Web морда (php) для серверных логов

Добавлено: 12:49, 24.01.2011
sasha
Chudik писал(а):Прописал в всех подчёркнутых жёлтым цветом php.ini : date.timezone = 'Europe/Helsinki'
Ошибка всё равно не убирается!
Я не мощен в веб серверах но все же.
А не надо убирать перед date.timezone = 'Europe/Helsinki' ???

Re: Web морда (php) для серверных логов

Добавлено: 13:02, 24.01.2011
Yaroslav
Chudik писал(а):Прописал в всех подчёркнутых жёлтым цветом php.ini : date.timezone = 'Europe/Helsinki'
Ошибка всё равно не убирается!
Точка-с-запятой перед строкой говорит о том, что строка закомментирована и не учитывается.

Re: Web морда (php) для серверных логов

Добавлено: 13:07, 24.01.2011
Chudik
Хм ... тогда в чём может быть ошибка?

Re: Web морда (php) для серверных логов

Добавлено: 13:11, 24.01.2011
Yaroslav
Chudik писал(а):Хм ... тогда в чём может быть ошибка?
В том, что точку-с-запятой перед строкой надо убрать.

Re: Web морда (php) для серверных логов

Добавлено: 13:18, 24.01.2011
Chudik
О! Убрал точку-с-запятой всё нормализовалось.
Осталась только одна ошибка.

Re: Web морда (php) для серверных логов

Добавлено: 13:48, 24.01.2011
Yaroslav
Chudik писал(а):О! Убрал точку-с-запятой всё нормализовалось.
Осталась только одна ошибка.
А это, друг мой, говорит о том, что править файлы нужно рассово верными редакторами, а не чудо notepad'ами встроенными, которые без спросу изменяют файлы как им заблагорассудится.

Отредактируй файл нормальным редактором (например Notepad++) отключив при этом запись BOM (или ещё называют метка Юникод). А так же проверь, чтобы в начале файла перед

<?php

ничего не было. Ни пробелов, ни переводов строк. Это проще будет сделать, если включить отображение непечатаемых символов.