Битрикс сообщение об ошибке

ShowMessage(
  mixed message
);

Выводит ошибки и прочие сообщения.

Параметры функции

Параметр Описание
message Текст сообщения об ошибке или массив со следующими ключами:

  • TYPE — тип сообщения, допустимы следующие значения:
    • OK — обычное сообщения, для вывода будет использоваться CSS класс «notetext»
    • ERROR — сообщение об ошибке, для вывода будет использоваться CSS класс «errortext»
  • MESSAGE — текст сообщения.

Примеры использования

<?
// выведем обычное сообщение
ShowMessage(Array("TYPE"=>"OK", "MESSAGE"=>"Данные сохранены."));
?>
<?
// выведем сообщение об ошибке
ShowMessage("Ошибка! Вы забыли заполнить обязательные поля!");
?>

© «Битрикс», 2001-2023, «1С-Битрикс», 2023

Наверх

ShowError(
 string message,
 string css_class = 
);

Выводит сообщение об ошибке.

Параметры функции

Параметр Описание
message Строка сообщения.
css_class Название CSS класса для оформления сообщения.
Необязательный параметр, как правило красного цвета.

Примеры использования

<?
ShowError("Ошибка!");
?>

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Реализуем традиционный способ улучшения качества текстов на сайте с участием посетителей. Теперь, если они заметят ошибку в тексте, то смогут легко и быстро передать ее администратору сайта, используя сочетание клавиш Ctrl + Enter.

1. Организуем форму отправки сообщений

В нашем примере список вопросов:

— Адрес страницы
— Текст с ошибкой
— Комментарий пользователя.

Подключим форму в шаблоне сайта, описав для нее шаблон:

<?if(!defined(«B_PROLOG_INCLUDED») || B_PROLOG_INCLUDED!==true)die();?>
<div id=»[B]frm_errMsg[/B]»>
<div onclick=»return CloseMsgForm()» id=»close-form-window» title=»<?=GetMessage(«AUTH_CLOSE_WINDOW»)?>»></div>
<?if ($arResult[«isFormErrors»] == «Y»):?><?=$arResult[«FORM_ERRORS_TEXT»];?><?endif;?>
<?=$arResult[«FORM_NOTE»]?>
<?if ($arResult[«isFormNote»] != «Y»)
{
?>
<?=$arResult[«FORM_HEADER»]?>

<table>
<?
if ($arResult[«isFormDescription»] == «Y» || $arResult[«isFormTitle»] == «Y» || $arResult[«isFormImage»] == «Y»)
{
?>
<tr>
<td><?
/***form header***/
if ($arResult[«isFormTitle»])
{
?>
<h3><?=$arResult[«FORM_TITLE»]?></h3>
<?
} //endif ;

   if ($arResult[«isFormImage»] == «Y»)
{
?>
<a href=»<?=$arResult[«FORM_IMAGE»][«URL»]?>» target=»_blank» alt=»<?=GetMessage(«FORM_ENLARGE»)?>»><img src=»<?=$arResult[«FORM_IMAGE»][«URL»]?>» <?if($arResult[«FORM_IMAGE»][«WIDTH»] > 300):?>width=»300″<?elseif($arResult[«FORM_IMAGE»][«HEIGHT»] > 200):?>height=»200″<?else:?><?=$arResult[«FORM_IMAGE»][«ATTR»]?><?endif;?> hspace=»3″ vscape=»3″ border=»0″ /></a>
<?//=$arResult[«FORM_IMAGE»][«HTML_CODE»]?>
<?
} //endif
?>

         <p><?=$arResult[«FORM_DESCRIPTION»]?></p>
</td>
</tr>
<?
} // endif
?>
</table>
<br />
<?
/**questions ****/
?>
<table class=»form-table data-table»>
<thead>
<tr>
<th colspan=»2″> </th>
</tr>
</thead>
<tbody>
<tr>
<td>Адрес страницы</td>
<td>
<?=$_SERVER[‘SERVER_NAME’].$_SERVER[‘PHP_SELF’]?><input type=»hidden» value=»<?=$_SERVER[‘SERVER_NAME’].’/’.$_SERVER[‘REQUEST_URI’]?>» name=»[I][B]form_text_29[/B][/I]»/>
</td>
</tr>
<tr>
<td>Текст с ошибкой<font color=»red»><span class=»form-required starrequired»>*</span></font></td>
<td><textarea name=»[B][I]form_textarea_30[/I][/B]» id=»[B]frm_err_str[/B]» cols=»20″ rows=»3″ class=»inputtextarea»></textarea></td>
</tr>
<tr>
<td>Комментарий пользователя</td>
<td><textarea name=»[B][I]form_textarea_31[/I][/B]» cols=»20″ rows=»3″ class=»inputtextarea»></textarea></td>
</tr>
<?
if($arResult[«isUseCaptcha»] == «Y»){
?>
<tr>
<th colspan=»2″><b><?=GetMessage(«FORM_CAPTCHA_TABLE_TITLE»)?></b></th>
</tr>
<tr>
<td> </td>
<td><input type=»hidden» name=»captcha_sid» value=»<?=htmlspecialchars($arResult[«CAPTCHACode»]);?>» /><img src=»/bitrix/tools/captcha.php?captcha_sid=<?=htmlspecialchars($arResult[«CAPTCHACode»]);?>» width=»180″ height=»40″ /></td>
</tr>
<tr>
<td><?=GetMessage(«FORM_CAPTCHA_FIELD_TITLE»)?><?=$arResult[«REQUIRED_SIGN»];?></td>
<td><input type=»text» name=»captcha_word» size=»30″ maxlength=»50″ value=»» class=»inputtext» /></td>
</tr>
<?} // isUseCaptcha
?>
</tbody>
<tfoot>
<tr>
<th colspan=»2″>
<input <?=(intval($arResult[«F_RIGHT»]) < 10 ? «disabled=»disabled»» : «»);?> type=»submit» name=»web_form_submit» value=»<?=strlen(trim($arResult[«arForm»][«BUTTON»])) <= 0 ? GetMessage(«FORM_ADD») : $arResult[«arForm»][«BUTTON»];?>» />
<?if ($arResult[«F_RIGHT»] >= 15):?>
<input type=»hidden» name=»web_form_apply» value=»Y» /><input type=»submit» name=»web_form_apply» value=»<?=GetMessage(«FORM_APPLY»)?>» />
<?endif;?>
<input type=»reset» value=»<?=GetMessage(«FORM_RESET»);?>» />
</th>
</tr>
</tfoot>
</table>
<p>
<?=$arResult[«REQUIRED_SIGN»];?> — <?=GetMessage(«FORM_REQUIRED_FIELDS»)?>
</p>
<?=$arResult[«FORM_FOOTER»]?>
<?
} //endif (isFormNote)
?>
</div>
<div class=»b-foo-err»>Для того, чтобы сообщить об ошибке на сайте или дать комментарий: выделите фрагмент текста и нажмите Ctrl+Enter или
<a href=»#» onclick=»return ShowMsgForm();»>отправьте сообщение</a></div>

Обратите внимание, что на вашем сайте параметр поля name должен быть свой.

2. Готовим скрипт для отправки сообщения на JavaScript

Максимальная длина текста, который можно отправить через форму выделением, передается через переменную maxTXT_Length.

function getSelText(){
var txt = »;
if (window.getSelection){
txt = window.getSelection();
}else if (document.getSelection){
txt = document.getSelection();
}else if (document.selection){
txt = document.selection.createRange().text;
}
return txt;
}
var err_maxTXT_Length = ‘Слишком длинный текст’;
var [B]maxTXT_Length[/B] = 100;
document.onkeypress = function(){
var e = arguments[0] || window.event;
var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode);
if(e.ctrlKey && code==13){
var text = getSelText();
txt = text.toString();
if(txt.length > maxTXT_Length){
alert(err_maxTXT_Length);
}else{
var txtarea = document.getElementById(«[B]frm_err_str[/B]»);
txtarea.value = txt;
ShowMsgForm();
}
}
}

function ShowMsgForm()
{
var div = document.getElementById(«[B]frm_errMsg[/B]»);
if (!div)
return;
div.style.display = «[B]block[/B]»;
document.body.appendChild(div);
return false;
}

function CloseMsgForm()
{
var div = document.getElementById(«[B]frm_errMsg[/B]»);
if (!div)
return;

   div.style.display = «[B]none[/B]»;
return false;
}

3. Настраиваем внешний вид формы при помощи CSS

#frm_errMsg {
position:absolute;
top:235px;
left:auto;
right:440px;
z-index:100;
background:#fff;
border:1px solid #bbb;
padding:20px 16px 6px;
width:26.75em;
[B]display:none;[/B]
}
#close-form-window {
background:url(images/bt/close.gif) no-repeat 0 0;
width:12px;
height:11px;
float:right;
cursor:pointer;
margin:-14px -10px 0 0;
display:inline;
}

 
Готово!

——————————-
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

ShowMessage(
  mixed message
);

Выводит ошибки и прочие сообщения.

Параметры функции

Параметр Описание
message Текст сообщения об ошибке или массив со следующими ключами:

  • TYPE — тип сообщения, допустимы следующие значения:
    • OK — обычное сообщения, для вывода будет использоваться CSS класс «notetext»
    • ERROR — сообщение об ошибке, для вывода будет использоваться CSS класс «errortext»
  • MESSAGE — текст сообщения.

Примеры использования

<?
// выведем обычное сообщение
ShowMessage(Array("TYPE"=>"OK", "MESSAGE"=>"Данные сохранены."));
?>
<?
// выведем сообщение об ошибке
ShowMessage("Ошибка! Вы забыли заполнить обязательные поля!");
?>

© «Битрикс», 2001-2023, «1С-Битрикс», 2023

Наверх

ShowMessage(
  mixed message
);

The function is used to display error descriptions and other messages.

Function parameters

Parameter Description
message Error message text or an array with the following keys:

  • TYPE — message type. The following types are available:
    • OK — simple message, displayed by using «notetext» CSS class.
    • ERROR — error message, displayed by using «errortext» CSS class
  • MESSAGE — message text.

Examples of use

<?
// display common message
ShowMessage(Array("TYPE"=>"OK", "MESSAGE"=>"Data saved."));
?>
<?
// display error message 
ShowMessage("Error! Please fill in the required fields!");
?>

© «Bitrix24», 2001-2023

Up

Реализуем традиционный способ улучшения качества текстов на сайте с участием посетителей. Теперь, если они заметят ошибку в тексте, то смогут легко и быстро передать ее администратору сайта, используя сочетание клавиш Ctrl + Enter.

1. Организуем форму отправки сообщений

В нашем примере список вопросов:

— Адрес страницы
— Текст с ошибкой
— Комментарий пользователя.

Подключим форму в шаблоне сайта, описав для нее шаблон:

<?if(!defined(«B_PROLOG_INCLUDED») || B_PROLOG_INCLUDED!==true)die();?>
<div id=»[B]frm_errMsg[/B]»>
<div onclick=»return CloseMsgForm()» id=»close-form-window» title=»<?=GetMessage(«AUTH_CLOSE_WINDOW»)?>»></div>
<?if ($arResult[«isFormErrors»] == «Y»):?><?=$arResult[«FORM_ERRORS_TEXT»];?><?endif;?>
<?=$arResult[«FORM_NOTE»]?>
<?if ($arResult[«isFormNote»] != «Y»)
{
?>
<?=$arResult[«FORM_HEADER»]?>

<table>
<?
if ($arResult[«isFormDescription»] == «Y» || $arResult[«isFormTitle»] == «Y» || $arResult[«isFormImage»] == «Y»)
{
?>
<tr>
<td><?
/***form header***/
if ($arResult[«isFormTitle»])
{
?>
<h3><?=$arResult[«FORM_TITLE»]?></h3>
<?
} //endif ;

   if ($arResult[«isFormImage»] == «Y»)
{
?>
<a href=»<?=$arResult[«FORM_IMAGE»][«URL»]?>» target=»_blank» alt=»<?=GetMessage(«FORM_ENLARGE»)?>»><img src=»<?=$arResult[«FORM_IMAGE»][«URL»]?>» <?if($arResult[«FORM_IMAGE»][«WIDTH»] > 300):?>width=»300″<?elseif($arResult[«FORM_IMAGE»][«HEIGHT»] > 200):?>height=»200″<?else:?><?=$arResult[«FORM_IMAGE»][«ATTR»]?><?endif;?> hspace=»3″ vscape=»3″ border=»0″ /></a>
<?//=$arResult[«FORM_IMAGE»][«HTML_CODE»]?>
<?
} //endif
?>

         <p><?=$arResult[«FORM_DESCRIPTION»]?></p>
</td>
</tr>
<?
} // endif
?>
</table>
<br />
<?
/**questions ****/
?>
<table class=»form-table data-table»>
<thead>
<tr>
<th colspan=»2″> </th>
</tr>
</thead>
<tbody>
<tr>
<td>Адрес страницы</td>
<td>
<?=$_SERVER[‘SERVER_NAME’].$_SERVER[‘PHP_SELF’]?><input type=»hidden» value=»<?=$_SERVER[‘SERVER_NAME’].’/’.$_SERVER[‘REQUEST_URI’]?>» name=»[I][B]form_text_29[/B][/I]»/>
</td>
</tr>
<tr>
<td>Текст с ошибкой<font color=»red»><span class=»form-required starrequired»>*</span></font></td>
<td><textarea name=»[B][I]form_textarea_30[/I][/B]» id=»[B]frm_err_str[/B]» cols=»20″ rows=»3″ class=»inputtextarea»></textarea></td>
</tr>
<tr>
<td>Комментарий пользователя</td>
<td><textarea name=»[B][I]form_textarea_31[/I][/B]» cols=»20″ rows=»3″ class=»inputtextarea»></textarea></td>
</tr>
<?
if($arResult[«isUseCaptcha»] == «Y»){
?>
<tr>
<th colspan=»2″><b><?=GetMessage(«FORM_CAPTCHA_TABLE_TITLE»)?></b></th>
</tr>
<tr>
<td> </td>
<td><input type=»hidden» name=»captcha_sid» value=»<?=htmlspecialchars($arResult[«CAPTCHACode»]);?>» /><img src=»/bitrix/tools/captcha.php?captcha_sid=<?=htmlspecialchars($arResult[«CAPTCHACode»]);?>» width=»180″ height=»40″ /></td>
</tr>
<tr>
<td><?=GetMessage(«FORM_CAPTCHA_FIELD_TITLE»)?><?=$arResult[«REQUIRED_SIGN»];?></td>
<td><input type=»text» name=»captcha_word» size=»30″ maxlength=»50″ value=»» class=»inputtext» /></td>
</tr>
<?} // isUseCaptcha
?>
</tbody>
<tfoot>
<tr>
<th colspan=»2″>
<input <?=(intval($arResult[«F_RIGHT»]) < 10 ? «disabled=»disabled»» : «»);?> type=»submit» name=»web_form_submit» value=»<?=strlen(trim($arResult[«arForm»][«BUTTON»])) <= 0 ? GetMessage(«FORM_ADD») : $arResult[«arForm»][«BUTTON»];?>» />
<?if ($arResult[«F_RIGHT»] >= 15):?>
<input type=»hidden» name=»web_form_apply» value=»Y» /><input type=»submit» name=»web_form_apply» value=»<?=GetMessage(«FORM_APPLY»)?>» />
<?endif;?>
<input type=»reset» value=»<?=GetMessage(«FORM_RESET»);?>» />
</th>
</tr>
</tfoot>
</table>
<p>
<?=$arResult[«REQUIRED_SIGN»];?> — <?=GetMessage(«FORM_REQUIRED_FIELDS»)?>
</p>
<?=$arResult[«FORM_FOOTER»]?>
<?
} //endif (isFormNote)
?>
</div>
<div class=»b-foo-err»>Для того, чтобы сообщить об ошибке на сайте или дать комментарий: выделите фрагмент текста и нажмите Ctrl+Enter или
<a href=»#» onclick=»return ShowMsgForm();»>отправьте сообщение</a></div>

Обратите внимание, что на вашем сайте параметр поля name должен быть свой.

2. Готовим скрипт для отправки сообщения на JavaScript

Максимальная длина текста, который можно отправить через форму выделением, передается через переменную maxTXT_Length.

function getSelText(){
var txt = »;
if (window.getSelection){
txt = window.getSelection();
}else if (document.getSelection){
txt = document.getSelection();
}else if (document.selection){
txt = document.selection.createRange().text;
}
return txt;
}
var err_maxTXT_Length = ‘Слишком длинный текст’;
var [B]maxTXT_Length[/B] = 100;
document.onkeypress = function(){
var e = arguments[0] || window.event;
var code=e.keyCode?e.keyCode:(e.which?e.which:e.charCode);
if(e.ctrlKey && code==13){
var text = getSelText();
txt = text.toString();
if(txt.length > maxTXT_Length){
alert(err_maxTXT_Length);
}else{
var txtarea = document.getElementById(«[B]frm_err_str[/B]»);
txtarea.value = txt;
ShowMsgForm();
}
}
}

function ShowMsgForm()
{
var div = document.getElementById(«[B]frm_errMsg[/B]»);
if (!div)
return;
div.style.display = «[B]block[/B]»;
document.body.appendChild(div);
return false;
}

function CloseMsgForm()
{
var div = document.getElementById(«[B]frm_errMsg[/B]»);
if (!div)
return;

   div.style.display = «[B]none[/B]»;
return false;
}

3. Настраиваем внешний вид формы при помощи CSS

#frm_errMsg {
position:absolute;
top:235px;
left:auto;
right:440px;
z-index:100;
background:#fff;
border:1px solid #bbb;
padding:20px 16px 6px;
width:26.75em;
[B]display:none;[/B]
}
#close-form-window {
background:url(images/bt/close.gif) no-repeat 0 0;
width:12px;
height:11px;
float:right;
cursor:pointer;
margin:-14px -10px 0 0;
display:inline;
}

 
Готово!

——————————-
Спасибо за внимание!
Читайте свежий выпуск «Кладовки программиста» каждый день!

Назад в раздел

Обработка ошибок в Битрикс

При разработке под Битрикс можно пользоваться не только логами, установленными в конфигурации сервера, но и своими. Для этого нужно настроить обработчик ошибок в секции exception_handling в файле /bitrix/.settings.php.

'exception_handling' =>
    array (
        'value' =>
            array (
              '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,
              'debug' => true,
              'log' => array (
                            'settings' => array (
                            'file' => 'bitrix/modules/error.log',
                            'log_size' => 1000000,
                            ),
            ),
    ),
),
  • handled_errors_types — типы обрабатываемых ошибок

  • exception_errors_types — типы ошибок, в случае которых системой выбрасывается исключение, и работа скрипта останавливается

  • ignore_silence — отменить действие оператора подавления ошибок (значок @ перед функцией, например @file(), документация).

  • assertion_throws_exception — выбрасывают ли утверждения (assert()) исключения.

  • assertion_error_type — тип ошибки для неверного утверждения (по умолчанию — 256 E_USER_ERROR)

  • debug — если выставить debug = true, информация об ошибке будет выведена пользователю в браузер. Если debug = false, при возникновении ошибки будет выведено стандартное сообщение от Битрикс, кроме ошибок E_ERROR | E_PARSE

if ($this->debug)
{
    error_reporting($this->handledErrorsTypes);
    @ini_set('display_errors', 'On');
    @ini_set('display_startup_errors', 'On');
    @ini_set('report_memleaks', 'On');
}
else
{
    error_reporting(E_ERROR | E_PARSE);
}

При отключении режима отладки, также сбрасываются настройки для assert()

if ($this->debug)
{
  assert_options(ASSERT_ACTIVE, 1);
  assert_options(ASSERT_WARNING, 0);
  assert_options(ASSERT_BAIL, 0);
  assert_options(ASSERT_QUIET_EVAL, 0);
  assert_options(ASSERT_CALLBACK, array($this, "handleAssertion"));
}
else
{
   assert_options(ASSERT_ACTIVE, 0);
}
  • log — секция с указанием логгера. Если пусто, то запись ошибок происходить не будет. В данном случае по умолчанию всю работу на себя возьмет объект класса BitrixMainDiagFileExceptionHandlerLog.
  • settings — секция с настройками обработчика ошибок. Можно задавать произвольные параметры. Они все передадутся массивом в метод initialize() обработчика.
  • file — относительный путь к файлу логов от корневой директории сайта (BitrixMainApplication::getDocumentRoot().’/’.$file).
  • log_size — максимальный размер файла логов в байтах.

Можно использовать собственный обработчик ошибок для записи логов. Для этого в секции log нужно указать:

'class_name' => 'MyLog',
'extension' => 'MyLogExt',
'required_file' => 'modules/mylog.module/mylog.php'
  • class_name — имя класса-обработчика. Класс должен наследоваться от BitrixMainDiagExceptionHandlerLog. Метод write в 16 версии отличается от реализации в 15 версии, эта несовместимость может сломать сайт, будьте внимательны.
  • extension — подключаемое расширение, содержащее класс-обработчик
  • required_file — файл, содержащий нужный класс.

Модули АХТУНГ 500 И АХТУНГ 500 ПРО

Модули Ахтунг 500 и Ахтунг 500 ПРО предназачены для мгновенного оповещения об ошибках по e-mail и через браузер, когда администратор находится на сайте.

Мониторинг ошибок происходит не только через обработчик ошибок Битрикса, но и через чтение файлов логов сервера, есть поиск.

Перейти к подробному описанию Ахтунг 500 ПРО

На чтение 4 мин. Просмотров 1.3k. Опубликовано 15.12.2019

Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.

Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.

Итак рассмотрим по порядку:

Содержание

  1. Почему может появиться это уведомление?
  2. Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
  3. Как в битрикс включить вывод ошибок?
  4. Методы выявление ошибки
  5. Основные причины появления белого экрана

Почему может появиться это уведомление?

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

Теперь рассмотрим пути решения этой проблемы.

Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?

Прежде всего необходимо включить вывод ошибок и предупреждений и посмотреть где у нас проблема.

Как в битрикс включить вывод ошибок?

Для старого ядра включить вывод ошибок можно в файле dbconn.php:

Чтобы в битрикс включить вывод ошибок для нового ядра D7 необходимо в файле .settings.php поставить значение debug => true:

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

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

Порой на сайте разработанном на 1с Битрикс вместо контента появляется белый экран. Были случаи появления чистого экрана после авторизации в админке.

Методы выявление ошибки

1. В файле .htaccess включаем вывод ошибок:

2. В файле /bitrix/php_interface/dbconn.php :

3. Смотреть лог ошибок (error log) веб-сервера (апач, файл error_log ).

4. В файле /bitrix/.settings.php установить

5. Проверить содержимое переменной $_SERVER[«DOCUMENT_ROOT»] . Там должен быть установлен корректный путь, иначе не подключаются файлы системы.

6. Запустить скрипт проверки системы на соответствия требованиям для стабильной работы 1с Битрикс bitrix_server_test.php

Основные причины появления белого экрана

  1. Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
  2. Такая же проблема с белым экраном возникла после переноса на другой сервер.
  3. Проверить настройку PHP — short_open_tag , которая должна быть в On.
  4. Не хватает оперативной памяти( memory_limit по умолчанию 128). Проблема решается следующим образом. Заходим в /bitrix/php_interface/dbconn.php . Редактируем ini_set(«memory_limit», «512M»);

Если вы сталкивались с этой проблемой пишите в комментариях, как её решили.

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

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

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

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

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

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

E_DEPRECATED,

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

bug_report Обработка ошибок

Как перестать беспокоиться и начать программировать? Попробуйте использовать PHPUnit в Битрикс!

Обработка ошибок в Битрикс

При разработке под Битрикс можно пользоваться не только логами, установленными в конфигурации сервера, но и своими. Для этого нужно настроить обработчик ошибок в секции exception_handling в файле /bitrix/.settings.php:

'exception_handling' =>
  array (
    'value' =>
      array (
        '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,
        'debug' => true,
        'log' => array (
              'settings' => array (
              'file' => 'bitrix/modules/error.log',
              'log_size' => 1000000,
              ),
      ),
  ),
),

Можно использовать собственный обработчик ошибок для записи логов. Для этого в секции log нужно указать:

'class_name' => 'MyLog',
'extension' => 'MyLogExt',
'required_file' => 'modules/mylog.module/mylog.php'

https://bitrixsolutions.ru/docs/bitrix_errors/ — человек грамотно сделал обработку ошибок, вот что мне понравилось: Logger::SHIT_HAPPENS, Logger::VOVA_POMOGI

Отправка сообщения об ошибке на почту

Если у вас на сайте произошла ошибка, но она не отображается и выводиться надпись  о том, что ошибки нужно включить в файле .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, 

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

Загрузка

Блог «Дивасофт»

23 января 2017, Михаил

В файле bitrix/.settings.php


<?php 
'exception_handling' => 
  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' => false,
      'assertion_throws_exception' => true,
      'assertion_error_type' => 256,
      'log' => 
      array (
        'settings' => 
        array (
          'file' => 'bitrix/err.log',
          'log_size' => 1000000,
        ),
      ),
    ),
    'readonly' => false,
  )
?>

Логи будут в файле bitrix/err.log

На чтение 4 мин. Просмотров 1.2k. Опубликовано 15.12.2019

Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.

Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.

Итак рассмотрим по порядку:

Содержание

  1. Почему может появиться это уведомление?
  2. Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
  3. Как в битрикс включить вывод ошибок?
  4. Методы выявление ошибки
  5. Основные причины появления белого экрана

Почему может появиться это уведомление?

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

Теперь рассмотрим пути решения этой проблемы.

Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?

Прежде всего необходимо включить вывод ошибок и предупреждений и посмотреть где у нас проблема.

Как в битрикс включить вывод ошибок?

Для старого ядра включить вывод ошибок можно в файле dbconn.php:

Чтобы в битрикс включить вывод ошибок для нового ядра D7 необходимо в файле .settings.php поставить значение debug => true:

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

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

Порой на сайте разработанном на 1с Битрикс вместо контента появляется белый экран. Были случаи появления чистого экрана после авторизации в админке.

Методы выявление ошибки

1. В файле .htaccess включаем вывод ошибок:

2. В файле /bitrix/php_interface/dbconn.php :

3. Смотреть лог ошибок (error log) веб-сервера (апач, файл error_log ).

4. В файле /bitrix/.settings.php установить

5. Проверить содержимое переменной $_SERVER[«DOCUMENT_ROOT»] . Там должен быть установлен корректный путь, иначе не подключаются файлы системы.

6. Запустить скрипт проверки системы на соответствия требованиям для стабильной работы 1с Битрикс bitrix_server_test.php

Основные причины появления белого экрана

  1. Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
  2. Такая же проблема с белым экраном возникла после переноса на другой сервер.
  3. Проверить настройку PHP — short_open_tag , которая должна быть в On.
  4. Не хватает оперативной памяти( memory_limit по умолчанию 128). Проблема решается следующим образом. Заходим в /bitrix/php_interface/dbconn.php . Редактируем ini_set(«memory_limit», «512M»);

Если вы сталкивались с этой проблемой пишите в комментариях, как её решили.

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

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

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

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

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

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

E_DEPRECATED,

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

 

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

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

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

 

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

Эксперт

Сообщений: 650
Баллов: 121
Авторитет:

1

Рейтинг пользователя:

3

Регистрация: 22.01.2009

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

 

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

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

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

 

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

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 03.12.2010

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

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

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

 

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

Заглянувший

Сообщений: 22
Баллов: 1
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 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
Авторитет:

1

Рейтинг пользователя:

15

Регистрация: 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. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка

 

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

Гуру

Сообщений: 1556
Баллов: 250
Авторитет:

0

Рейтинг пользователя:

19

Регистрация: 15.08.2007

1С-Рарус

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

 

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

Посетитель

Сообщений: 74
Баллов: 8
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 29.06.2006

#8

4

02.04.2011 23:11:41

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

Код
php_value display_errors 1

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

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

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

При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .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


This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters

<?php
return array (
‘exception_handling’ =>
array (
‘value’ =>
array (
‘debug’ => true,
‘handled_errors_types’ => 4437,
‘exception_errors_types’ => 4437,
‘ignore_silence’ => false,
‘assertion_throws_exception’ => true,
‘assertion_error_type’ => 256,
‘log’ =>
array (
‘settings’ =>
array (
‘file’ => ‘/var/log/php/exceptions.log’,
‘log_size’ => 1000000,
),
),
),
‘readonly’ => false,
)
);
?>

Bitrix Framework имеет ряд специфичных настроек ядра, которые не имеют визуального интерфейса редактирования. Этот подход вызван тем, что изменение настроек или ошибка в них легко могут привести к неработоспособности системы (настройки подключения к базе данных, настройки кеширования и т.д.).

Настройки в новом ядре выполняются в файле /bitrix/.settings.php. В старом ядре аналогичные настройки выполнялись в файле /bitrix/php_interface/dbconn.php. Файл .settings.php структурно сильно отличается от прежнего dbconn.php.

В Битрикс параллельно используются 2 ядра — старое и новое, соответственно, оба файла настроек используются одновременно. Поэтому необходимо производить настройки обоих файлов.

Даже если используется код только старого ядра, то файл .settings.php должен быть создан. Возможна ситуация, когда при установке обновлений какой-то из встроенных механизмов системы будет переписан на новое ядро. Если этот файл корректно не настроен, то это может привести к неработоспособности системы.

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

BitrixMainConfigConfiguration::wnc();

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

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

то открываем файл .settings.php

'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,
  ),

находим debug и заменяем false на true. В результате чего на экране будет подробное описание ошибки:

[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 • CMS • PHP • Web-разработка • Битрикс • Ошибка • .settings.php • dbconn.php • debug • Настройка • Ядро

Каталог оборудования

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Производители

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Функциональные группы

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Заказать сайт

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

'exception_handling' => 
  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' => false,
              'assertion_throws_exception' => true,
              'assertion_error_type' => 256,
              'log' =>
                  array (
                      'settings' =>
                          array (
                              'file' => 'bitrix/customError.log',
                              'log_size' => 1000000,
                          ),
                  ),
          ),
      'readonly' => false,
  )

Автор решения:

  • Как правильно включить отображение ошибок в 1С-Битрикс

Теги:

1С Битриксphp

ОБРАТНАЯ СВЯЗЬ

Напишите мне

Вы разрабатываете новый сервис, вносите доработки в существующий и хотите лучше чем у конкурентов? Вы обратились по адресу. Предлагаю вам комплексную разработку сайтов студийного уровня. У меня вы можете заказать дизайн, верстку, програмированние, разработку нетрадиционного функционала, реализацию связи между CMS, CRM и Data Analitics, а так же все остальное касаемое сайтов, кроме продвижения.

Обращайтесь, я всегда проконсультирую по всем вопросам и помогу подобрать наиболее эффективное решение для Вашего бизнеса. Я занимаюсь созданием сайтов в Новосибирске и в других регионах России, также работаю со странами СНГ. Вы останетесь довольны нашим сотрудничеством

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

Обработка ошибок в Битрикс

При разработке под Битрикс можно пользоваться не только логами, установленными в конфигурации сервера, но и своими. Для этого нужно настроить обработчик ошибок в секции exception_handling в файле /bitrix/.settings.php.

'exception_handling' =>
    array (
        'value' =>
            array (
              '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,
              'debug' => true,
              'log' => array (
                            'settings' => array (
                            'file' => 'bitrix/modules/error.log',
                            'log_size' => 1000000,
                            ),
            ),
    ),
),
  • handled_errors_types — типы обрабатываемых ошибок

  • exception_errors_types — типы ошибок, в случае которых системой выбрасывается исключение, и работа скрипта останавливается

  • ignore_silence — отменить действие оператора подавления ошибок (значок @ перед функцией, например @file(), документация).

  • assertion_throws_exception — выбрасывают ли утверждения (assert()) исключения.

  • assertion_error_type — тип ошибки для неверного утверждения (по умолчанию — 256 E_USER_ERROR)

  • debug — если выставить debug = true, информация об ошибке будет выведена пользователю в браузер. Если debug = false, при возникновении ошибки будет выведено стандартное сообщение от Битрикс, кроме ошибок E_ERROR | E_PARSE

if ($this->debug)
{
    error_reporting($this->handledErrorsTypes);
    @ini_set('display_errors', 'On');
    @ini_set('display_startup_errors', 'On');
    @ini_set('report_memleaks', 'On');
}
else
{
    error_reporting(E_ERROR | E_PARSE);
}

При отключении режима отладки, также сбрасываются настройки для assert()

if ($this->debug)
{
  assert_options(ASSERT_ACTIVE, 1);
  assert_options(ASSERT_WARNING, 0);
  assert_options(ASSERT_BAIL, 0);
  assert_options(ASSERT_QUIET_EVAL, 0);
  assert_options(ASSERT_CALLBACK, array($this, "handleAssertion"));
}
else
{
   assert_options(ASSERT_ACTIVE, 0);
}
  • log — секция с указанием логгера. Если пусто, то запись ошибок происходить не будет. В данном случае по умолчанию всю работу на себя возьмет объект класса \Bitrix\Main\Diag\FileExceptionHandlerLog.
  • settings — секция с настройками обработчика ошибок. Можно задавать произвольные параметры. Они все передадутся массивом в метод initialize() обработчика.
  • file — относительный путь к файлу логов от корневой директории сайта (\Bitrix\Main\Application::getDocumentRoot().’/’.$file).
  • log_size — максимальный размер файла логов в байтах.

Можно использовать собственный обработчик ошибок для записи логов. Для этого в секции log нужно указать:

'class_name' => 'MyLog',
'extension' => 'MyLogExt',
'required_file' => 'modules/mylog.module/mylog.php'
  • class_name — имя класса-обработчика. Класс должен наследоваться от Bitrix\Main\Diag\ExceptionHandlerLog. Метод write в 16 версии отличается от реализации в 15 версии, эта несовместимость может сломать сайт, будьте внимательны.
  • extension — подключаемое расширение, содержащее класс-обработчик
  • required_file — файл, содержащий нужный класс.

Модули АХТУНГ 500 И АХТУНГ 500 ПРО

Модули Ахтунг 500 и Ахтунг 500 ПРО предназачены для мгновенного оповещения об ошибках по e-mail и через браузер, когда администратор находится на сайте.

Мониторинг ошибок происходит не только через обработчик ошибок Битрикса, но и через чтение файлов логов сервера, есть поиск.

Перейти к подробному описанию Ахтунг 500 ПРО

Понравилась статья? Поделить с друзьями:
  • Битрикс почта ошибка подключения к серверу
  • Бисмарк только дураки учатся на своих ошибках
  • Бисквитное тесто ошибки
  • Битрикс после обновления ошибки
  • Бирюса коды ошибок кондиционер