ShowMessage( mixed message );
Выводит ошибки и прочие сообщения.
Параметры функции
Параметр | Описание |
---|---|
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 | Текст сообщения об ошибке или массив со следующими ключами:
|
Примеры использования
<? // выведем обычное сообщение 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:
|
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
Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.
Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.
Итак рассмотрим по порядку:
Содержание
- Почему может появиться это уведомление?
- Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
- Как в битрикс включить вывод ошибок?
- Методы выявление ошибки
- Основные причины появления белого экрана
Почему может появиться это уведомление?
- Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в 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
Основные причины появления белого экрана
- Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
- Такая же проблема с белым экраном возникла после переноса на другой сервер.
- Проверить настройку PHP — short_open_tag , которая должна быть в On.
- Не хватает оперативной памяти( 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
Уведомление об ошибке в админке битрикс, или непосредственно в визуальной его части. При выполнении скрипта возникла ошибка.
Это уведомление, я назову это именно так — уведомление, т.к. мы еще не знаем в чем же дело, битрикс нас просто информирует о том, что при выполнении скрипта возникла ошибка, не более того.
Итак рассмотрим по порядку:
Содержание
- Почему может появиться это уведомление?
- Что делать, если появляется сообщение «при выполнении скрипта возникла ошибка»?
- Как в битрикс включить вывод ошибок?
- Методы выявление ошибки
- Основные причины появления белого экрана
Почему может появиться это уведомление?
- Если уведомление появляется при разработке в публичной части сайта, то это однозначно ошибка в скрипте, вызвана, к примеру, ошибкой в синтаксисе в файле шаблона или в 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
Основные причины появления белого экрана
- Кривое редактирование /bitrix/php_interface/init.php : ошибки, лишний пробел после ?>
- Такая же проблема с белым экраном возникла после переноса на другой сервер.
- Проверить настройку PHP — short_open_tag , которая должна быть в On.
- Не хватает оперативной памяти( 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 |
Стоит apache + php. Вывод ошибок включен, то есть если я создаю левый скрипт и пишу ошибочные конструкции в PHP — то в браузере вижу ругань. Но если выполняется код битрикса (начиная от его корневого файла index.php) — то там ошибки не выводятся, просто белый экран. Как включить вывод ошибок?! |
Пользователь 36231 Эксперт Сообщений: 650 |
может включить директиву error_reporting(E_ALL); ?? хотя на 100% не уверен, но попробовать можно. |
Пользователь 77670 Заглянувший Сообщений: 22 |
дык error_reporting включен. Битрикс где-то внутри себя то ли сбрасывает ошибки, то ли перенаправляет их куда-то… |
Пользователь 77670 Заглянувший Сообщений: 22 |
немного разобрался. В целом, он ошибки показывает. Но если есть такой кусок вот: <?php То тогда белый экран. Какая-то защита срабатывает? |
Пользователь 77670 Заглянувший Сообщений: 22 |
#5 0 24.12.2010 09:54:53 Я разрабатываю на локальном компьютере, стоит фактически дефолтная связка: Apache/2.2.17 (Win32) PHP/5.3.4 Если я открываю в браузере файл PHP с содержимым:
то вижу в браузере страничку со словами: «для примера» Если же такой код (а в частности $_SERVER[«SCRIPT_NAME»] = ‘что-то’) выполнить в рамках подключаемого битриксом модуля, то белый экран и все. Как-будто на этой строке происходит исключение и выполнение завершается. Есть ощущение, что в процессе запуска битрикс что-то инициализирует или делает какую-то защиту (в данном случае переменных сервера…) или что-то подобное… |
||
Пользователь 11573 Гуру Сообщений: 1782 |
#6 0 24.12.2010 20:49:08 ведь это системная переменная, содержащая имя файла.
(bitrix/modules/main/tools.php) ITConstruct. Разработка сайтов в Москве и Новосибирске. Внедрение корпоративных порталов. Техническая поддержка |
||
Пользователь 14686 Гуру Сообщений: 1556 1С-Рарус |
В настройках главного модуля посмотрите. |
Пользователь 4948 Посетитель Сообщений: 74 |
#8 4 02.04.2011 23:11:41 В корне сайта в .htaccess пишете
и видите ошибки. Студия Оробланко |
||
Если на экране появилась ошибка:
При выполнении скрипта возникла ошибка. Включить расширенный вывод ошибок можно в файле настроек .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 ПРО