Архив

< Сентябрь 2019 >
П В С Ч П С В
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Вход на сайт

Тэги

Блог Alex Delphine

Здесь я оставляю разные свои мысли.

 

Используемые версии:

PHP: 5.2.0
Joomla 1.5.14
My Blog 3.0 Build 329

PHPВсё было хорошо. Блог работает без ошибок (ну по крайней мере если они и есть, то я о них не знаю и мне никто не жаловался). Так вот, спрятал я как то один плагин от незарегистрированных пользователей. И вот тут посыпалась ошибка

Notice: Trying to get property of non-object in
/components/com_myblog/libraries/plugins.php  on line 57

В принципе то это не ошибка, а просто предупреждение, что в строке 57 (в моём случае) пытаются получить свойство несуществующего объекта. Вот эта моя строка:

Код PHP
$plgObj = 'plgContent' . ucfirst($plg->name);

Из этой строки понятно, что ошибка возникает из за отсутствия "$plg->name".

Решений тут два.

  1. Просто изменить уровень вывода ошибок, т.е. сделать так что бы ошибки не выводились. Для этого можно в файле php.ini (конфигурационный файл PHP)  найти параметр error_reporting и установить значение E_ERROR. Допустим так:
    error_reporting = E_ERROR
    или в файле .htaccess прописать
    php_value error_reporting 1
  2. А можно исправить ошибку (что я всегда стораюсь делать на своих сайтах).  Для исправления нам необходимо перед выполнением "$plgObj =" поставить проверку, а есть ли вообще это "$plg->name". Делается это просто:
    Код PHP
    if (isset($plg->name)) $plgObj = 'plgContent' . ucfirst($plg->name);
    "isset($plg->name)" проверяет, если ли что то в "$plg->name" и если там ничего, то наш запрос из-за которого появляется ошибка, не выполняется. И следовательно ошибки больше нет.
    Если у вас подобная ошибка, то всё делается аналогично:
    Код PHP
    if ( isset ($Переменная) ) {исполняемый код с Переменной;}


Комментарии  

 
-6 #1 Alexx 10.02.2011 13:23
Добрый день! Может подскажите, не могу в компонене в статьях вставить модули и кнопки соц закладок, страница открывается в искаверканном html коде. На денвере все отлично! подозреваю что проблемма в правах на папки или файлы, а где копать не пойму. Может подскажите?
 
 
-2 #2 Дмитрий 24.05.2013 09:15
:-) Спасибо. Нужно учится писать правильный код. Возьму на вооружение.
 
 
0 #3 Alexandr Covax 26.01.2014 11:21
Спасибо, помогла проверка.
 
 
0 #4 Саша 22.04.2016 15:47
Спасибо! Помогло!
 

У Вас не достаточно прав, для того что бы оставлять комментарии.