1

Topic: Ошибка PHP Strict Standards: Non-static method...

Внимание! Это автоматический перевод статьи сангл. Источник в конце перевода.

Некоторые из пользователей наших шаблонов и модулей испытали ошибку в обоих Joomla 2.5 и Joomla 3 установок, которое происходит, когда PHP на своем сервере установлен на строгой отчетности ошибок (E_STRICT), где они получают сообщения об ошибках заявив, что " PHP Strict Standards: Non-static method.. на линии Х-Х ", или аналогичный.

Если у вас есть ошибки отчетности режима PHP установить жесткий режим также, вы можете найти себе работает в подобных сообщений часто, особенно после установки пакета QUICKSTART (то есть полной установки Joomla включая шаблона, модулей и содержимого баз данных чтобы соответствовать демонстрационную схему) или при просмотре передний конец сайта Joomla, который имеет модули установлены.

Естественно, если вы видите эту ошибку в основном, когда имеются модули, установленные на просматриваемой странице, что это разумно предположить, что модули являются проблемой, но на самом деле основной причиной этой проблемы является с PHP и как она работает, поэтому он будет влиять не только на модули, но в значительной степени любое расширение Joomla или шаблон, который использует PHP.

2

Re: Ошибка PHP Strict Standards: Non-static method...

Почему я вижу это сообщение об ошибке?
Если вы видите это сообщение часто, то очень вероятно, что в файле php.ini вашего сервера текущие настройки включают строку "error_reporting = E_ALL | E_STRICT "; это означает, что система ошибки в виде простого уведомления отчетности. Это вопрос, так как часто то, что считается "ошибка" РНР на самом деле может быть просто предупреждение или напоминание среднего пользователя.

Например, если использовать современный почтовый клиент, вы можете получить сообщение, если вы пишете слово "придают" или "прикреплены" в электронной почте, фактически не имеется что-то к нему; это полезно небольшое сообщение, чтобы напомнить вам, что, возможно, вы что-то пропустили.

Строгое отчетов об ошибках будет превратить эту простую напоминание в полномасштабной ошибки, делая это похоже что-то пошло не так, когда это не так, на самом деле. На самом деле, флаг E_STRICT обычно ставится на использование разработчиками для устранения их продукты; они должны быть осведомлены о каждой мелочи при создании нечто эффективным и стабильным, но это перебор для обычных пользователей, которые больше заинтересованы в вещах, работающих плавно, а на самом деле считается плохой практикой для «живых сайтов».

Подводя итог: По существу, строгими стандартами предупреждения не являются ошибками; они сообщений, предназначенных для разработчиков, чтобы помочь устранить их программное обеспечение и такие сообщения не нужно (и это рекомендуется, чтобы они не должны) быть включен на производственной площадке.

3

Re: Ошибка PHP Strict Standards: Non-static method...

Теперь, когда мы говорим "удалить", то, что мы на самом деле говорим, "скрыть"; причиной сообщения будут по-прежнему существует, но это почти всегда имеет значения, поскольку это всего лишь эквивалент сообщение с напоминанием, а не истинной ошибки, которые надо исправлять.

Изменение отчета об ошибках PHP на стороне сервера (php.ini)
Если вы уже пытались отключить строгим стандартам с помощью Joomla без успеха, или вы хотите, чтобы сократить вопрос с непосредственно у источника, то вы также можете отключить строгим стандартам на сервере с помощью настроек PHP, которые хранятся в PHP. INI-файл. Этот файл обычно находится в корневой папке сервера, так что вам нужно, чтобы подключиться к вашему сайту через FTP.

Оказавшись там, найти и открыть файл php.ini с редактором по своему выбору. Там, как правило еще несколько опций, перечисленные здесь, но конкретный один вы ищете является error_reporting атрибут. После того как вы нашли эту строку вам придется заменить этот атрибут с помощью следующего кода:

error_reporting = E_ALL & ~ E_NOTICE & ~ E_WARNING & ~ E_STRICT & ~ E_DEPRECATED

... А затем сохранить изменения и загрузки измененный файл обратно на прежнее место.

Внимание: Если после внесения этого изменения вы обнаружите, что вы получаете другую ошибку, таких как 500 внутренняя ошибка сервера (он же HTTP 500 ошибки), то вы должны связаться с командой поддержки вашего хоста, который сможет предоставить вам подробную информацию о том, как и где перекрыть файл php.ini, так как некоторые хозяева довольно защитная этого файла из-за, как необходимо для бесперебойной работы сервера. Как только они советуют вам их предпочтительного способа модификации вы можете проверить его и попробовать сделать изменения еще раз.

4

Re: Ошибка PHP Strict Standards: Non-static method...

Там другая, последней отчаянной метод по уходу за этим вопросом, если по какой-то причине вы не можете использовать вышеупомянутые методы, или если вы не разрешается изменять файл php.ini и не может связаться сеть поддержки вашего хозяина.

В этом случае вы будете изменять некоторые из основных файлов шаблона вы используете для вашего сайта. Еще раз вам нужно использовать FTP для этого изменения, поскольку вы изменяете основные файлы шаблонов, а не стандартные настройки.

После подключения к серверу, если вы используете одну из наших собственных шаблонов Joomla вы должны перемещаться к макета названием папки шаблона, который обычно находится в шаблонов папке установки Joomla. В качестве примера, путь к папке, как правило, что-то вроде  templates/gk_TemplateName/layout/. . В этой папке вы найдете файл default.php; открыть это с выбранной редакторе и добавьте эту строку в верхней части этого файла сразу после строке "<PHP?":

error_reporting (0);

Чтобы быть вдвойне уверенным в успехе, вы можете также попробовать добавить этот код в файл также:

ini_set ( 'error_reporting', E_ALL & ~ E_NOTICE & ~ E_WARNING & ~ E_STRICT & ~ E_DEPRECATED);
ini_set ( 'display_errors', 'Off');

После этого, сохраните изменения и выкладывание файл обратно на прежнее место. Теперь вы должны быть свободны от ошибок и может вернуться к более важных вещах, как строить свой контент веб-сайта!

Если вы обнаружите, что вы по-прежнему сталкивается с вопросов даже после этих исправлений, то это может быть, что есть нечто большее происходит не так под капотом сервера, и вы должны вернуться в контакте с службой поддержки клиентов вашего хоста, который, безусловно, будет в состоянии помочь вам локализовать источник.

Источник оригинала статьи на английском

5 (edited by PunBB 2016.02.05 01:10)

Re: Ошибка PHP Strict Standards: Non-static method...

Еще одно решение одного веб програмиста на CMS JUMLA. Ссылка на оригинал в конце поста.

Как я понял, связано это было с тем, что хостер обновил версию PHP до 5.3. Как устранить причину возникновения этих ошибок я не стал разбираться (надо было функции, которые вызываются, объявить статическими). В интернете нашел совет внести правку в файл php.ini на сервере, чтобы отключить вывод информации об ошибках на экран, ибо они на работу самого сайта никакого влияния не оказывают.

Мне предлагали изменить два параметра в файле конфигурации php.ini, а именно «error_reporting» и «display_errors» в разделе «Error handling and logging». Т.е. изначально было:

error_reporting = E_ALL | E_STRICT
display_errors = On

А после правки должно стать:

error_reporting = E_ALL & ~E_NOTICE
display_errors = Off

После этого перезагружаем веб-сервер и наслаждаемся отличной работой Joomla. Однако проблемный сайт живет на виртуальном хостинге, где понятно каким образом можно добраться до php.ini.

Поэтому я использовал файл для удаленного управления сервером под названием .htaccess. Живет он в корне вашего сайта (нужно будет подключиться к нему по ФТП), а если его там вдруг не окажется, то просто создайте его в текстовом редакторе и залейте в корень сайта.

В .htaccess надо будет добавить всего лишь две новых строчки (можно в самом низу):

php_value error_reporting 30711
php_flag display_errors off

Все, после этого сообщения «Strict Standards: Non-static method JLoader::import () should not be called statically in» перестали беспокоить посетителей данного сайта...

Источник на оригинал статьи