Как прочитать ошибку 500 не имея доступа к Логам?
Как прочитать ошибку 500 не имея доступа к Логам?
Нажимаю кнопку сохранения в Yii и получаю "Ошибка 500".
Как её прочитать не имея доступа к логам на сервере?
Спасибо.
Как её прочитать не имея доступа к логам на сервере?
Спасибо.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
А Yii-дебагер использовать?
Re: Как прочитать ошибку 500 не имея доступа к Логам?
https://prnt.sc/suffiy
Вот ошибка БД - 500
Справа в инспекторе видно, что 500.
Дебаггер добросовестно все показывает.
Как включить дебаг тулбар
Вот ошибка БД - 500
Справа в инспекторе видно, что 500.
Дебаггер добросовестно все показывает.
Как включить дебаг тулбар
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Как то мне не очень помогло. См. рисунок:Prooksius писал(а): ↑2020.06.05, 17:41 https://prnt.sc/suffiy
Вот ошибка БД - 500
Справа в инспекторе видно, что 500.
Дебаггер добросовестно все показывает.
Как включить дебаг тулбар
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Если картинка вдруг исчезнет. - Там смысл в том, что ошибка 500 выскакивает в js консоли. А на странице не происходит - ничего. Вообще ничего.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
https://prnt.sc/suhdwv
Вот такой тулбар должен быть. Его открываешь и смотришь, что там не так.
Также обычно к дебагеру есть доступ:
http://site.com/debug/
Дебагер у вас включен?
Вот такой тулбар должен быть. Его открываешь и смотришь, что там не так.
Также обычно к дебагеру есть доступ:
http://site.com/debug/
Дебагер у вас включен?
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Я сделал вот это:Prooksius писал(а): ↑2020.06.05, 19:27 https://prnt.sc/suhdwv
Вот такой тулбар должен быть. Его открываешь и смотришь, что там не так.
Также обычно к дебагеру есть доступ:
http://site.com/debug/
Дебагер у вас включен?
https://open-real-estate.info/ru/faq#debug-mode
Re: Как прочитать ошибку 500 не имея доступа к Логам?
В конфиге надо добавить вот это
Там, скорее всего, часть уже есть, надо только добавить строчку с IP-шниками
Код: Выделить всё
$config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [
'class' => 'yii\debug\Module',
'allowedIPs' => ['127.0.0.1', '<твой IP адрес>'],
];
Re: Как прочитать ошибку 500 не имея доступа к Логам?
В конфиге:Prooksius писал(а): ↑2020.06.05, 19:49 В конфиге надо добавить вот это
Код: Выделить всё
$config['bootstrap'][] = 'debug'; $config['modules']['debug'] = [ 'class' => 'yii\debug\Module', 'allowedIPs' => ['127.0.0.1', '<твой IP адрес>'], ];
if (YII_DEBUG) {
$preload[] = 'debug';
}
// application components
'components' => array(
'log'=>array(
'class'=>'CLogRouter',
/*'routes'=>array(
array(
'class'=>'ext.yii-debug-toolbar.YiiDebugToolbarRoute',
'ipFilters'=>array('127.0.0.1','192.168.1.215'),
),
),*/
),
'debug' => array(
'class' => 'ext.yii2-debug.Yii2Debug',
'enabled' => YII_DEBUG,
),
Больше никаких упоминаний о Дебаге нет.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Если ошибка в ajax-запросе, можно отображать ошибку, ну например так:
в случае ошибки она будет выдаваться в алерте
Код: Выделить всё
$.ajax({
url: '<адрес контроллера>',
type: 'POST',
data: ......,
dataType: 'json',
success: function(json) {
// ....
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
Последний раз редактировалось Prooksius 2020.06.05, 20:06, всего редактировалось 1 раз.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Дебагер вероятно работает. Потому что я искусственно создал ошибку и он мне выдал кучу:
Error
Call to a member function serdceStil() on null
И дальше - целую страницу ненужной информации
Error
Call to a member function serdceStil() on null
И дальше - целую страницу ненужной информации
Re: Как прочитать ошибку 500 не имея доступа к Логам?
То есть в функцию которая возвращает ошибку прописать:Prooksius писал(а): ↑2020.06.05, 19:59 Если ошибка в ajax-запросе, можно отображать ошибку, ну например так:в случае ошибки она будет выдаваться в алертеКод: Выделить всё
$.ajax({ url: 'callback.php', type: 'POST', data: ......, dataType: 'json', success: function(json) { // .... }, error: function(xhr, ajaxOptions, thrownError) { alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText); } });
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
????
Я делал уже это. Только выводил в консоль. Сейчас попробую ещё раз.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Чтобы что-то определенное сказать, надо знать, как у вас отправляется тот POST запрос, в котором происходит 500-я ошибка
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Вот так:
Код: Выделить всё
$("#additionalprices-save").click(function(){
if( $('input[name="Additionalprices[name_<?= Yii::app()->language?>]"]').val() == '' ) {
postData['Additionalprices[name_<?= Yii::app()->language?>]'] = $('#additional-prices-name').val();
/*$('input[name="Additionalprices[name_<?= Yii::app()->language?>]"]').val($('#additional-prices-name').val());
translateField('name', 'en', '0', 'yw6');
$('input[name^="Additionalprices[name_"]').each(function(i) {
if(this.value != '')
postData[this.name] = this.value;
});*/
//postData['Additionalprices[name_ru]'] = '<?= tt('Price', 'additionalprices') ?>';
}
else {
postData['Additionalprices[name_<?= Yii::app()->language?>]'] = $('input[name="Additionalprices[name_<?= Yii::app()->language?>]"]').val();
}
postData['Additionalprices[price]'] = $('#Additionalprices_price').val();
postData['Additionalprices[in_currency]'] = $('#Additionalprices_in_currency').val();
postData['Additionalprices[proc_arenda]'] = $('#proc_arenda').val();
postData['Additionalprices[interval_time]'] = $('#interval_time').val();
postData['Additionalprices[edenica]'] = $('#edenica').val();
postData['Additionalprices[objaz]'] = $('#objaz').val();
$('input[name^="Additionalprices[name_"]').each(function(i) {
if(this.value != '')
postData[this.name] = this.value;
});
postData['<?php echo Yii::app()->request->csrfTokenName;?>'] = '<?php echo Yii::app()->request->csrfToken;?>';
//console.log(postData);
//return false;
$.ajax({
success: function(dataResult){
console.log(dataResult.msg);
if (dataResult.msg == "ok") {
$('#additional_data_error').hide();
$("#additional-status-save").addClass('status-save-success').html('<?php echo tc("Success") ?>');
$.fn.yiiGridView.update('apartment-additional-prices-grid');
}
else if (dataResult.msg == "access_error") {
$("#additional-status-save").addClass('status-save-error').html('<?php echo tt("Access denied", "additionalprices") ?>');
}
else if (dataResult.msg == "error_filling") {
$('#additional_data_error').show();
$('#additional_data_error').html(dataResult.msg_full);
}
else if (dataResult.msg == "error_save"){
$("#additional-status-save").addClass('status-save-error').html('<?php echo tc("Error. Repeat attempt later") ?>');
}
else {
document.location.href = dataResult.msg;
}
setTimeout('hideMessageDb($("#status-save"))', 3000);
},
type: 'post',
url: '<?php echo Yii::app()->controller->createUrl("/additionalprices/main/saveprice", $urlParams) ;?>',
data: postData,
cache: false,
dataType: 'json'
});
});
Re: Как прочитать ошибку 500 не имея доступа к Логам?
ну вот добавьте после success еще error через запятую:
Код: Выделить всё
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Ого!!! У меня что-то появилось!!!
Спасибо вам огромное.
Спасибо вам огромное.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Я это делал, но вероятно код вставлял не туда.
Спасибо ещё раз!
Спасибо ещё раз!
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Ничтяк. Там запросы mySQL идут к старому серверу - долго бы я искал эту ошибку.
А я её долго и искал.
Спасибо. Спасибо. Спасибо.
А я её долго и искал.
Спасибо. Спасибо. Спасибо.
Re: Как прочитать ошибку 500 не имея доступа к Логам?
Мне кажется, не совсем рацинально у вас JS-код построен.
Можно же создать модель формы, к примеру, AdditionalPriceModel, прописать там все нужные поля и вывести ее через ActiveForm
А при нажатии на submit обрабатывать в контроллере, как обычно.
Так будет задействован весь ресурс YII, проверка полей и т.д.
А вы похоже создаете форму вручную и вручную же собираете данные с нее...
Это я предполагаю, конечно, могу ошибаться.
Можно же создать модель формы, к примеру, AdditionalPriceModel, прописать там все нужные поля и вывести ее через ActiveForm
А при нажатии на submit обрабатывать в контроллере, как обычно.
Так будет задействован весь ресурс YII, проверка полей и т.д.
А вы похоже создаете форму вручную и вручную же собираете данные с нее...
Это я предполагаю, конечно, могу ошибаться.