Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2017, 15:52   #1
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию Ошибка с плагинами

Здравствуйте.
При работе форума вижу при заходе каждого бота одну и ту же ошибку, связанную очевидно с плагинами.

Строка из лога ошибок (частично):

PHP код:
PHP Warning:  include(plugins/printversion/forums.posts.php): failed to open streamNo such file or directory in /home/admin... /system/core/forums/forums.posts.inc.php on line 36 
И в строке 36 файла forums.posts.inc.php видим:

PHP код:
    { foreach($extp as $k => $pl) { include('plugins/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } } 
Здесь есть как видим слово plugin, но нет его конкретного названия printversion

Да, и в пакете есть папка plugins, но там нет такого плагина printversion , т.е. нет папки с таким названием.

Что делать, исправить как-то строку 36 или может быть создать папку printversion в папке с плагинами? Но хотя пустую создавать глупо, надо, чтобы там был этот файл forums.posts.php . А где же его взять?..

Последний раз редактировалось Елена S; 18.09.2017 в 15:54.
Елена S вне форума Ответить с цитированием
Старый 18.09.2017, 16:16   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

ну warning - не ошибка, но неприятно )))
потом, у вас по сути список всех плагинов берется из переменной $extp
туда скорее всего или из конфига, или из БД попадают значения
так вот, если плагина этого нет и не будет..... то просто уберите из бди или конфига упоминание про него, либо находите файлы плагина и размещайте в нужном месте
ADSoft вне форума Ответить с цитированием
Старый 18.09.2017, 16:18   #3
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Что хоть за форум?
Правильный подход к проблеме: нужно разбираться, откуда поступает информация в $pl['pl_code'] – и удалить оттуда упоминание о printversion.
Костыль: перед include добавить:
PHP код:
if($pl['pl_code'] === 'printversion') continue; 
Andkorol вне форума Ответить с цитированием
Старый 18.09.2017, 17:08   #4
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
ну warning - не ошибка, но неприятно )))
Вы понимаете, заходит ежедневно много ботов, и от каждого по пять одинаковых ошибок, это пока одну написала. Потом эти логи ошибок скапливаются на хостинге, и работа сайта прекращается... до удаления логов. Так что лучше сделать, чтобы не было этих предупреждений даже. Но я не знала, что это только предупреждение, не ошибка...

Да, плагина нет и не будет видимо.
А где в БД может быть упоминание о плагинах? В конфиге-то можно посмотреть...

Последний раз редактировалось Елена S; 18.09.2017 в 17:14.
Елена S вне форума Ответить с цитированием
Старый 18.09.2017, 17:10   #5
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Что хоть за форум?
ссылка Старенький нужно восстановить... А новый на phpbb само собой.
Елена S вне форума Ответить с цитированием
Старый 18.09.2017, 18:17   #6
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

Ну гадать трудно. Смотрите сами в бд
ADSoft вне форума Ответить с цитированием
Старый 19.09.2017, 11:34   #7
Елена S
Пользователь
 
Регистрация: 17.07.2016
Сообщений: 93
По умолчанию

Цитата:
Сообщение от Andkorol Посмотреть сообщение
Что хоть за форум?
Костыль: перед include добавить:
PHP код:
if($pl['pl_code'] === 'printversion') continue; 
Спасибо, это кажется помогло. Для каждого бота пропало две строки, для этого плагина printversion
Вчера не сказала, что к каждому плагину в логах ошибок дается две строки: одна, которую написала вчера и вторая, вида:

PHP код:
include(): Failed opening 'plugins/notifier/notifier.forums.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear'in /home/admin/...system/core/forums/forums.posts.inc.php on line 670 
Это уже к другому плагину notifier, эти ошибки, две строки к каждому боту, пока остаются.

Понимаю, в строке 670 тоже нужно добавить перед include
Елена S вне форума Ответить с цитированием
Старый 19.09.2017, 12:47   #8
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

как то так
Цитата:
if($pl['pl_code'] === 'printversion' || $pl['pl_code'] === 'notifier' || ) continue;
ADSoft вне форума Ответить с цитированием
Старый 19.09.2017, 14:49   #9
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

ADSoft, та не – строка ж другая совсем (36 и 670)
Просто такую же проверку воткнуть в 670 – но указать другое название плагина.
Andkorol вне форума Ответить с цитированием
Старый 19.09.2017, 15:23   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Елена S Посмотреть сообщение
А где в БД может быть упоминание о плагинах? В конфиге-то можно посмотреть...
а подскажите, у Вас не такой код?

Цитата:
Код:
if (is_array($sed_plugins))
    {
    foreach($sed_plugins as $i => $k)
        {
        if ($k['pl_hook']=='standalone' && $k['pl_code']==$e)
            { $out['subtitle'] = $k['pl_title']; }
        }
    }

$out['subtitle'] = (empty($L['plu_title'])) ? $out['subtitle'] : $L['plu_title'];
$sys['sublocation'] = $out['subtitle'];

/* ============= */

require("system/header.php");

$t = new XTemplate($path_skin);

$extp = array();

if (is_array($sed_plugins))
    {
    foreach($sed_plugins as $i => $k)
        {
        if ($k['pl_hook']=='standalone' && $k['pl_code']==$e)
            { $extp[$i] = $k; }
        }
    }

if (count($extp)==0)
    {
    header("Location: message.php?msg=907");
    exit;
    }

if (is_array($extp))
    { foreach($extp as $k => $pl) { include('plugins/'.$pl['pl_code'].'/'.$pl['pl_file'].'.php'); } }

if ($autoassigntags)
    {
    $plugin_title = (empty($plugin_title)) ? $L['plu_title'] : $plugin_title;

    $t-> assign(array(
        "PLUGIN_TITLE" => "<a href=\"plug.php?e=$e\">".$plugin_title."</a>",
        "PLUGIN_SUBTITLE" => $plugin_subtitle,
        "PLUGIN_BODY" => $plugin_body
        ));
    }

$t->parse("MAIN");
$t->out("MAIN");

require("system/footer.php");

}
взял отсюда

если такой, то нужно смотреть, где заполняется массив $sed_plugins
именно в нём и перечислены плагины.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется написать основу для приложения с плагинами veshiyoleg Фриланс 0 22.06.2012 09:49
C#. Программы с плагинами. ds.Dante Обсуждение статей 2 24.08.2011 16:45
Программа с динамически подключаемыми библиотеками (плагинами) ds.Dante Общие вопросы .NET 5 13.04.2010 18:02
Mozilla Firefox 3.0.4 Глюки с плагинами? iankov Софт 0 09.01.2009 17:44