Intereting Posts
PHP и MySQL не обновляют базу данных Codeigniter Cart не может добавлять элементы Приложение Facebook на странице PHP – $ _SESSION не поддерживается, когда пользователь закрывает окно своего браузера Как отсортировать массив по определенному ключу? Стратегии для синхронизации двух баз данных mySQL (в разных местах)? mysqli – вызов ошибки fetch_Array для функции-члена fetch_array () для не-объекта mysqli список всех PHP preg_replace символов для выхода Как я могу решить эту проблему памяти доктрины? Оптимизация стратегий разработки веб-приложений PHP – ошибка доступа к MySQL – работает в других программах Как объединить DOMDocument PHP с шаблоном JavaScript Как установить AND условие для ВСЕХ столбцов – php Как включить текстовый файл в PHP как PHP, без печати на страницу? Система RBAC с двумя параметрами Неправильно ли исключать исключения для возврата ошибок сервера, например. 404 Страница не найдена?

Отключение строгих стандартов в PHP 5.4

В настоящее время я запускаю сайт на php 5.4, до этого я запускал свой сайт в 5.3.8. К сожалению, php 5.4 объединяет E_ALL и E_STRICT , что означает, что мои предыдущие настройки error_reporting не работают. Моим предыдущим значением было E_ALL & ~E_NOTICE & ~E_STRICT Должен ли я просто включать значения по одному за раз?

У меня слишком много ошибок, и файлы содержат слишком много кода для исправления.

Как отмечают комментаторы, лучшим вариантом является исправление ошибок, но с ограниченным временем или знаниями это не всегда возможно. В вашем изменении php.ini

 error_reporting = E_ALL 

в

 error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT 

Если у вас нет доступа к php.ini, вы можете поместить его в файл .htaccess:

 php_value error_reporting 30711 

Это значение E_ALL (32767) и удаление значений E_STRICT (2048) и E_NOTICE (8).

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

 error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE); 

Один из них должен помочь вам использовать программное обеспечение. Замечания и строгий материал являются индикаторами проблем или потенциальных проблем, хотя вы можете обнаружить, что некоторые из кода работают неправильно в PHP 5.4.

Надеюсь это поможет.

.htaccess php_value работает, только если вы используете PHP Server API в качестве модуля веб-сервера Apache. Используйте синтаксис IfModule:

 # PHP 5, Apache 1 and 2. <IfModule mod_php5.c> php_value error_reporting 30711 </IfModule> 

Если вы используете PHP Server API CGI / FastCGI, используйте

 ini_set('error_reporting', 30711); 

или

 error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE); 

в вашем PHP-коде или в файлах конфигурации PHP .user.ini | Изменение php.ini:

 error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE 

на вашем виртуальном хосте, на уровне сервера.

Это сработало для меня, когда я установил error_reporting в двух местах одновременно

где-то в PHP-коде

 ini_set('error_reporting', 30711); 

и в файле .htaccess

 php_value error_reporting 30711 

Если вам также необходимо отключить E_DEPRACATED, используйте:

 php_value error_reporting 22527 

В моем случае CMS Made Simple жаловался: «E_STRICT включен в error_reporting», а также «E_DEPRECATED включен». Добавление этой строки в .htaccess устраняет обе неверные конфигурации.

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