YuriBtr 58 Опубликовано: 22 января 2017 Рассказать Опубликовано: 22 января 2017 На сайте включена предмодерация комментариев. Для удобства модераторов, долгое время использовался переделанный модуль вывода последних комментариев (iComm) с кнопками "опубликовать" и "удалить". Но после обновления с PHP 5.3 на PHP 7 - данный модуль перестал работать как надо (как и BlockPro2 и BlockPro3 от Пафнутия). Что интересно данные в него из базы заходят, но в шаблон почему то не вставляются. Так как документации на $tpl->compile, $tpl->result и прочие команды не могу найти, прошу подсказать - что нужно подправить чтобы он заработал, уже всю голову сломал. Вот код модуля icomm.php Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 Включите вывод ошибок и логи ошибок на сервере. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 (изменено) Автор Так как доступа к php.ini у меня нет (сайт на VPS), пробую включить отображение ошибок: 1. В конце .htaccess # log php errors php_flag display_startup_errors off php_flag display_errors off php_flag html_errors off php_flag log_errors on php_value error_log /var/www/site/php_errors.log 2. В скрипте @ini_set('log_errors', 'On'); @ini_set('display_errors','Off'); @ini_set('error_log', '/var/www/site/php_errors.log'); Потом пробую вызвать принудительно запись в лог: error_log('Test'); Но ничего не происходит - даже файл журнала не создается (хотя сам скрипт отрабатывается). Смена места расположения логфайла не помогает. Создал вручную лог файл в корне сайта, присвоил ему права 666 - все равно в него ничего не пишется. Либо в движке DLE стоит преимущественное подавление ошибок, либо PHP7 не дает скриптам менять глобальные настройки. Изменено 23 января 2017 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 455 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 16 минут назад, YuriBtr сказал: сайт на VPS 16 минут назад, YuriBtr сказал: доступа к php.ini Это как? Доступа к php.ini может не быть на обычном шаред хостенге, но никак ни на VPS. На VPS есть доступ абсолютно ко всем файлам. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 (изменено) Автор 17 минут назад, germanydletest сказал: Это как? Доступа к php.ini может не быть на обычном шаред хостенге, но никак ни на VPS. На VPS есть доступ абсолютно ко всем файлам. Может вы имели в виду VDS? На моем хостинге достаточно жестко ограничены права - видимо из за того, что администрирование сервера ведется самим хостером. В скрипте немного модифицировал включение логирования: echo @ini_set('log_errors', 'On'); echo @ini_set('display_errors','Off'); echo @ini_set('error_log', '/var/www/site/php_errors.log'); error_log('Test'); Теперь в месте вызова скрипта возвращает: 11/var/www/site/php_errors.log (то есть все присваивается) но ничего не пишется ((((( Изменено 23 января 2017 пользователем YuriBtr Цитата Ссылка на сообщение Поделиться на других сайтах
germanydletest 455 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 18 минут назад, YuriBtr сказал: Может вы имели в виду VDS? а какая разница между VPS и VDS, помимо типа виртуализации? Цитата VPS (англ. Virtual Private Server) или VDS (англ. Virtual Dedicated Server) — услуга, в рамках которой пользователю предоставляется так называемый Виртуальный выделенный сервер. В плане управления операционной системой по большей части она соответствует физическому выделенному серверу. В частности: root-доступ, собственные IP-адреса, порты, правила фильтрования и таблицы маршрутизации. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 Автор 10 минут назад, germanydletest сказал: а какая разница между VPS и VDS, помимо типа виртуализации? Да, вы правы я оговорился - хотел сказать физический выделенный сервер. Тем не менее - есть у кого нибудь идеи как заставить этот скрипт работать на PHP7 (на PHP5.3 все работало четко)? И почему же логи не пишутся? Цитата Ссылка на сообщение Поделиться на других сайтах
webair 178 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 А на php 5.6 как? Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 Автор 59 минут назад, webair сказал: А на php 5.6 как? К сожалению нет возможности испытать. Если есть возможность - можете подключить к какому нибудь сайту на PHP 5.6 - проверить - буду очень благодарен. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 23 января 2017 Рассказать Опубликовано: 23 января 2017 Автор Логи все таки пишутся! Но совершенно не то что надо. За весь день логирования поймалась только одна ошибка: Uncaught Error: Call to undefined function dle_session() in /var/www/site/engine/init.php:56 Stack trace: #0 /var/www/site/index.php(30): require_once() #1 {main} thrown in /var/www/site/engine/init.php on line 56 А ошибок в скрипте вывода комментариев никаких ошибок нет (((( Даже не знаю в какую сторону копать. Проверил изменения с PHP 5.3 до PHP7.0 - вроде как там нет ничего что использовалось бы в моем скрипте. Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 В 23.01.2017 в 22:35, YuriBtr сказал: Логи все таки пишутся! Но совершенно не то что надо. За весь день логирования поймалась только одна ошибка: Uncaught Error: Call to undefined function dle_session() in /var/www/site/engine/init.php:56 Stack trace: #0 /var/www/site/index.php(30): require_once() #1 {main} thrown in /var/www/site/engine/init.php on line 56 А ошибок в скрипте вывода комментариев никаких ошибок нет (((( Даже не знаю в какую сторону копать. Проверил изменения с PHP 5.3 до PHP7.0 - вроде как там нет ничего что использовалось бы в моем скрипте. Да конечно, по вашему PHP 7 вообще почти похож на PHP 5 и там ничего нового такого нет... И обратная совместимость полная... Ни версии DLE, ни настроек PHP, ничего... Короче ждите второго прихода ванги, она вам расскажет в чём дело... Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 Автор 8 минут назад, SKYNET74 сказал: Да конечно, по вашему PHP 7 вообще почти похож на PHP 5 и там ничего нового такого нет... И обратная совместимость полная... Я такого не говорил. Вот моя цитата: Цитата Проверил изменения с PHP 5.3 до PHP7.0 - вроде как там нет ничего что использовалось бы в моем скрипте. 10 минут назад, SKYNET74 сказал: Ни версии DLE, ни настроек PHP, ничего... Короче ждите второго прихода ванги, она вам расскажет в чём дело... Скрипт довольно маленький - на него есть ссылка в первом посте. DLE версии 11.2, какие настройки PHP нужны для диагностики? Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 30 минут назад, YuriBtr сказал: Я такого не говорил. Вот моя цитата: Скрипт довольно маленький - на него есть ссылка в первом посте. DLE версии 11.2, какие настройки PHP нужны для диагностики? Ошибки с модулем не связаны в логе, нужно на месте смотреть, так не понятно в чём дело... Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 Автор 8 минут назад, SKYNET74 сказал: Ошибки с модулем не связаны в логе, нужно на месте смотреть, так не понятно в чём дело... Спасибо, это я понял и так. Можете подключить к себе модуль - там все прозрачно и просто. Файл шаблона здесь. Буду благодарен, если найдете проблему - модуль реально полезный, так как облегчает предмодерацию. Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 2 часа назад, YuriBtr сказал: Спасибо, это я понял и так. Можете подключить к себе модуль - там все прозрачно и просто. Файл шаблона здесь. Буду благодарен, если найдете проблему - модуль реально полезный, так как облегчает предмодерацию. Никто не будет тестировать ничего у себя это точно, максимум кто то из гуру у вас на месте посмотрит за $. Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 24 января 2017 Рассказать Опубликовано: 24 января 2017 ТС, а не судьба обратится к разработчику, по этому поводу, тем паче имя знаешь http://pafnuty.name/ ? BlockPro уже 4.7 есть, и да, на заметку, старые версии DLE тоже не поддерживают php v.7+ Цитата Ссылка на сообщение Поделиться на других сайтах
draxxx 2 Опубликовано: 25 января 2017 Рассказать Опубликовано: 25 января 2017 Умоляю, никогда не делайте так, скрипты нужно закрывать иначе от внешнего вызова. if (!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 26 января 2017 Рассказать Опубликовано: 26 января 2017 Автор В 25.01.2017 в 13:21, draxxx сказал: Умоляю, никогда не делайте так, скрипты нужно закрывать иначе от внешнего вызова. if (!defined('DATALIFEENGINE')) { die("Hacking attempt!"); } Эмммм, вы код самой DLE смотрели? Там все так сделано. Или у вас есть лучше вариант? В 25.01.2017 в 00:22, SKYNET74 сказал: Никто не будет тестировать ничего у себя это точно, максимум кто то из гуру у вас на месте посмотрит за $. Не думаю что за 5$ кто-то тут будет ломать голову. А больше он не стоит. В 25.01.2017 в 01:26, Captain сказал: ТС, а не судьба обратится к разработчику, по этому поводу, тем паче имя знаешь http://pafnuty.name/ ? BlockPro уже 4.7 есть, и да, на заметку, старые версии DLE тоже не поддерживают php v.7+ Пафнутий красава конечно но вряд ли ему интересен фриланс. А меня выбешивают языки с динамической типизацией, да еще и без возможности нормальной отладки. Но если никто из гуру PHP не поможет, придется наверное к нему обращаться. Цитата Ссылка на сообщение Поделиться на других сайтах
draxxx 2 Опубликовано: 27 января 2017 Рассказать Опубликовано: 27 января 2017 В 26.01.2017 в 19:34, YuriBtr сказал: Эмммм, вы код самой DLE смотрели? Там все так сделано. Или у вас есть лучше вариант? Лучше ничего, чем такое. Найдите это в symfony, laravel, phalcon, я пожелаю вам удачи. Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 27 января 2017 Рассказать Опубликовано: 27 января 2017 Автор 23 минуты назад, draxxx сказал: Лучше ничего, чем такое. Найдите это в symfony, laravel, phalcon, я пожелаю вам удачи. Извините, но вы сами себе противоречите. Сначала вы сказали что закрывать надо иначе, сейчас пишете что лучше не закрывать чем так как сейчас. Но если у вас есть вариант - предложите. Ведь мы все пользуемся этим скриптом и вы видимо тоже. Ваши предложения мы передадим автору скрипта. Это должно пойти нам всем на пользу. Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 27 января 2017 Рассказать Опубликовано: 27 января 2017 1 час назад, YuriBtr сказал: Извините, но вы сами себе противоречите. Сначала вы сказали что закрывать надо иначе, сейчас пишете что лучше не закрывать чем так как сейчас. Но если у вас есть вариант - предложите. Ведь мы все пользуемся этим скриптом и вы видимо тоже. Ваши предложения мы передадим автору скрипта. Это должно пойти нам всем на пользу. Ну человек просто не изучил DLE, но уже приступил к написанию суперпупермегагигапетраситра модулей для DLE... Такое бывает, это проходит. PS: Это действительно устаревший подход, но и DLE не пару лет отродясь... Цитата Ссылка на сообщение Поделиться на других сайтах
draxxx 2 Опубликовано: 28 января 2017 Рассказать Опубликовано: 28 января 2017 19 часов назад, SKYNET74 сказал: Ну человек просто не изучил DLE, но уже приступил к написанию суперпупермегагигапетраситра модулей для DLE... Такое бывает, это проходит. PS: Это действительно устаревший подход, но и DLE не пару лет отродясь... Я пишу только свою платформу, от DLE беру только ID сессии и всё... Цитата Ссылка на сообщение Поделиться на других сайтах
YuriBtr 58 Опубликовано: 28 января 2017 Рассказать Опубликовано: 28 января 2017 Автор 27 минут назад, draxxx сказал: Я пишу только свою платформу, от DLE беру только ID сессии и всё... Ну вы можете объяснить как лучше делать? Потому как пока только два варианта защиты от внешнего вызова я видел: 1. то как сделано в DLE 2. вынос таких скриптов за пределы папки сайта (обычно на уровень выше или в специальную папку со скриптами) Цитата Ссылка на сообщение Поделиться на других сайтах
SKYNET74 315 Опубликовано: 28 января 2017 Рассказать Опубликовано: 28 января 2017 6 часов назад, YuriBtr сказал: Ну вы можете объяснить как лучше делать? Потому как пока только два варианта защиты от внешнего вызова я видел: 1. то как сделано в DLE 2. вынос таких скриптов за пределы папки сайта (обычно на уровень выше или в специальную папку со скриптами) В большинстве случаев так и делается, просто используются уже переменная типа $_INCLUDE, а не этот архивариум... Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.