Битрикс включить отображение ошибок php

 

Стоит apache + php. Вывод ошибок включен, то есть если я создаю левый скрипт и пишу ошибочные конструкции в PHP — то в браузере вижу ругань. Но если выполняется код битрикса (начиная от его корневого файла index.php) — то там ошибки не выводятся, просто белый экран. Как включить вывод ошибок?!

 

может включить директиву error_reporting(E_ALL); ?? хотя на 100% не уверен, но попробовать можно.

 

дык error_reporting включен. Битрикс где-то внутри себя то ли сбрасывает ошибки, то ли перенаправляет их куда-то…
Демка скачана с сайта 1C. Если при ее работе возникают ошибки — они никогда на экран не выводятся.

 

немного разобрался. В целом, он ошибки показывает. Но если есть такой кусок вот:

<?php
 $_SERVER[«SCRIPT_NAME»] = ‘нечто’;
?>

То тогда белый экран. Какая-то защита срабатывает?

 

Пользователь 77670

Заглянувший

Сообщений: 22
Баллов: 1
Регистрация: 03.12.2010

#5

0

24.12.2010 09:54:53

Я разрабатываю на локальном компьютере, стоит фактически дефолтная связка: Apache/2.2.17 (Win32) PHP/5.3.4

Если я открываю в браузере файл PHP с содержимым:

Код
<?php
  $_SERVER["SCRIPT_NAME"] = 'для примера';
  echo $_SERVER["SCRIPT_NAME"];
?>

то вижу в браузере страничку со словами: «для примера»

Если же такой код (а в частности $_SERVER[«SCRIPT_NAME»] = ‘что-то’) выполнить в рамках подключаемого битриксом модуля, то белый экран и все. Как-будто на этой строке происходит исключение и выполнение завершается. Есть ощущение, что в процессе запуска битрикс что-то инициализирует или делает какую-то защиту (в данном случае переменных сервера…) или что-то подобное…

 

Пользователь 11573

Гуру

Сообщений: 1782
Баллов: 257
Регистрация: 04.05.2007

#6

0

24.12.2010 20:49:08

ведь это системная переменная, содержащая имя файла.
зачем вы ее меняете? Она используется в системе, например, в такой конструкции

Код
   if($page===false && $_SERVER["REQUEST_URI"]<>"")
      $page = $_SERVER["REQUEST_URI"];
   if($page===false)
      $page = $_SERVER["SCRIPT_NAME"];

(bitrix/modules/main/tools.php)

ITConstruct. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка

 

В настройках главного модуля посмотрите.

 

Пользователь 4948

Посетитель

Сообщений: 74
Баллов: 8
Регистрация: 29.06.2006

#8

4

02.04.2011 23:11:41

В корне сайта в .htaccess пишете

Код
php_value display_errors 1

и видите ошибки.

Студия Оробланко

PHP. Конструкция вывода ошибок в php файле.

Для вывода ошибок на странице со скриптом можно использовать следующую конструкцию в самом начале .php файла:

error_reporting(E_ALL);
ini_set('display_errors', 'on');

//Чтобы включить запись ошибок в файл используется следующая комбинация:error_reporting(E_ALL); ini_set('error_log','error_log.txt');

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

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

Рабочий стол->Контент->Структура сайта->Файлы и папки->bitrix

Здесь представлен многомерный массив данных, ключ-значение. Это основные настройки вашего сайта на битриксе.

Что бы включить отображение ошибок находим строку ‘debug’  которая находится внутри ‘exception_handling’->’value’ и ставим ей значение true вместо false.

Что бы настроить какие именно ошибки мы хотим отображать в ключе ‘exception_errors_types’  указываем код ошибок, например 29687, но он мало понятен, поэтому лучше использовать в значение данного ключа константы через пробел:

‘handled_errors_types’ => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_DEPRECATED, 

Здесь мы  перечислили все ошибки, предупредения и тд. Если нужно вывести только ошибки, то остальные константы можно просто убрать, поскольку уведомление 

Загрузка

1. Создаю в корне сайта файл error.php со следующим содержимым:

<?php
echo show_me_error;
?>

2. Открываю в браузере site.ru/error.php — белый экран

3. Смотрю bitrix/php_interface/dbconn.php:
$DBDebug = true;

4. Смотрю bitrix/php_interface/.settings.php:

...
  array (
    'value' => 
    array (
      'debug' => true,
      'handled_errors_types' => E_ALL & ~E_NOTICE & ~E_STRICT & ~E_USER_NOTICE & ~E_DEPRECATED,
      'exception_errors_types' => E_ALL & ~E_NOTICE & ~E_WARNING & ~E_STRICT & ~E_USER_WARNING & ~E_USER_NOTICE & ~E_COMPILE_WARNING,
      'ignore_silence' => true,
      'assertion_throws_exception' => false,
      'assertion_error_type' => 256,
      'log' => array (
        'settings' => array (
        'file' => 'bitrix/modules/error.log',
        'log_size' => 1000000,
        ),
      ),  
    ),
    'readonly' => false,
  ),
...

5. Смотрю bitrix/modules/error.log — кучу левых Warning, однако моей ошибки в моём error.php нет
6. Иду в .htaccess:

php_value display_errors 1
php_value error_reporting 7

7. Иду на сервере в /var/log/nginx/error.log — то же самое, ничего о моей ошибке

Как мне на экране при открытии error.php увидеть мою ошибку?

Если на экране появилась ошибка:

При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .settings.php

Открываем файл .settings.php находим debug и заменяем false на true:

'exception_handling' =>
array (
'value' =>
array (
'debug' => false, // изменяем значение на true
'handled_errors_types' => 20853,
'exception_errors_types' => 20853,
'ignore_silence' => false,
'assertion_throws_exception' => true,
'assertion_error_type' => 256,
'log' =>
array (
'settings' =>
array (
'file' => NULL,
'log_size' => NULL,
),
),
),
'readonly' => false,
),

В результате чего на экране будет подробное описание ошибки:

[Error]
Class 'Assets' not found (0)
D:worklocalhost11wwwlocaltemplatesvoguis_indexheader.php:17
#0: include_once
D:worklocalhost11wwwbitrixmodulesmainincludeprolog_after.php:96
#1: require(string)
D:worklocalhost11wwwbitrixmodulesmainincludeprolog.php:11
#2: require_once(string)
D:worklocalhost11wwwbitrixheader.php:1
#3: require(string)
D:worklocalhost11wwwindex.php:2

  • Битрикс settings php скрыть вывод ошибок
  • Битрикс sale order ajax вывод ошибок
  • Битрикс http авторизация ошибка не работает
  • Битрикс 24 ошибка создания звонка код ошибки 8
  • Битрикс 24 ошибка подключения к серверу ошибка передачи данных