Как прочитать ошибку 500 не имея доступа к Логам?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Нажимаю кнопку сохранения в Yii и получаю "Ошибка 500".
Как её прочитать не имея доступа к логам на сервере?

Спасибо.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

А Yii-дебагер использовать?
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Prooksius писал(а): 2020.06.05, 17:30 А Yii-дебагер использовать?
Как? Он читает 500 ошибку?
У меня сейчас выдаёт - ошибка 500 и всё.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

https://prnt.sc/suffiy
Вот ошибка БД - 500
Справа в инспекторе видно, что 500.
Дебаггер добросовестно все показывает.

Как включить дебаг тулбар
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Prooksius писал(а): 2020.06.05, 17:41 https://prnt.sc/suffiy
Вот ошибка БД - 500
Справа в инспекторе видно, что 500.
Дебаггер добросовестно все показывает.

Как включить дебаг тулбар
Как то мне не очень помогло. См. рисунок:

Изображение
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Если картинка вдруг исчезнет. - Там смысл в том, что ошибка 500 выскакивает в js консоли. А на странице не происходит - ничего. Вообще ничего.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

https://prnt.sc/suhdwv
Вот такой тулбар должен быть. Его открываешь и смотришь, что там не так.

Также обычно к дебагеру есть доступ:
http://site.com/debug/

Дебагер у вас включен?
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Prooksius писал(а): 2020.06.05, 19:27 https://prnt.sc/suhdwv
Вот такой тулбар должен быть. Его открываешь и смотришь, что там не так.

Также обычно к дебагеру есть доступ:
http://site.com/debug/

Дебагер у вас включен?
Я сделал вот это:

https://open-real-estate.info/ru/faq#debug-mode
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

В конфиге надо добавить вот это

Код: Выделить всё

    $config['bootstrap'][] = 'debug';
    $config['modules']['debug'] = [
        'class' => 'yii\debug\Module',
	'allowedIPs' => ['127.0.0.1', '<твой IP адрес>'],
    ];
Там, скорее всего, часть уже есть, надо только добавить строчку с IP-шниками
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

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

Больше никаких упоминаний о Дебаге нет.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

Если ошибка в 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 раз.
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Дебагер вероятно работает. Потому что я искусственно создал ошибку и он мне выдал кучу:

Error
Call to a member function serdceStil() on null

И дальше - целую страницу ненужной информации
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

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);
}

????

Я делал уже это. Только выводил в консоль. Сейчас попробую ещё раз.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

Чтобы что-то определенное сказать, надо знать, как у вас отправляется тот POST запрос, в котором происходит 500-я ошибка
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Prooksius писал(а): 2020.06.05, 20:11 Чтобы что-то определенное сказать, надо знать, как у вас отправляется тот POST запрос, в котором происходит 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'
			});
		});
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

ну вот добавьте после success еще error через запятую:

Код: Выделить всё

error: function(xhr, ajaxOptions, thrownError) {
	alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Ого!!! У меня что-то появилось!!!
Спасибо вам огромное.
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Я это делал, но вероятно код вставлял не туда.
Спасибо ещё раз!
miltorg
Сообщения: 45
Зарегистрирован: 2019.08.13, 14:03
Откуда: Калининград
Контактная информация:

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение miltorg »

Ничтяк. Там запросы mySQL идут к старому серверу - долго бы я искал эту ошибку.
А я её долго и искал.
Спасибо. Спасибо. Спасибо.
Prooksius
Сообщения: 100
Зарегистрирован: 2019.01.17, 23:24

Re: Как прочитать ошибку 500 не имея доступа к Логам?

Сообщение Prooksius »

Мне кажется, не совсем рацинально у вас JS-код построен.
Можно же создать модель формы, к примеру, AdditionalPriceModel, прописать там все нужные поля и вывести ее через ActiveForm
А при нажатии на submit обрабатывать в контроллере, как обычно.
Так будет задействован весь ресурс YII, проверка полей и т.д.
А вы похоже создаете форму вручную и вручную же собираете данные с нее...
Это я предполагаю, конечно, могу ошибаться.
Ответить