Prestashop нет ошибок/пустой страницы
Я разрабатываю модуль в PHP для Prestashop, и у меня трудное время пытается отладить код. Всякий раз, когда что-то падает, оно не отображает ошибок, просто пустую страницу - либо на переднем конце, где подключен модуль, либо на странице модуля задней панели.
Я пытаюсь писать в другом классе или другой функции, но мне это совсем не нравится.
Это на локальном dev-сервере, ошибки PHP и т.д.
Может кто-нибудь сказать мне какой-либо другой способ отладки, вместо того, чтобы комментировать код? Или какой-то способ получения кодов ошибок?
Спасибо за вашу помощь заранее.
Ответы
Ответ 1
Попробуйте открыть config/config.inc.php
, а затем измените:
@ini_set('display_errors', 'off')
к
@ini_set('display_errors', 'on')
.
Из PS 1.5+ вам нужно открыть config/defines.inc.php
и изменить:
define('_PS_MODE_DEV_', false);
к
define('_PS_MODE_DEV_', true);
Ответ 2
Мне пришлось делать
aptitude install php5-mcrypt sudo aptitude install php5-mcrypt sudo service apache2 restart
Шифрование не установлено
Ответ 3
проверьте это для окончательного решения!
Прежде всего, вам нужно включить отчет об ошибках на своем веб-сайте.
1) Откройте файл config\config.inc.php и найдите следующую строку:
@ini_set(‘display_errors’, ‘off’);
2) Измените "off to" on, повторно загрузите файл и обновите страницу.
Если это не поможет, перейдите к следующему шагу.
3) Добавьте этот код в начало файла index.php в корневой каталог PrestaShop и повторно загрузите его на свой сервер. Затем попробуйте открыть свой веб-сайт и панель администратора.
<?php error_reporting(0);
$old_error_handler = set_error_handler("userErrorHandler");
function userErrorHandler ($errno, $errmsg, $filename, $linenum, $vars)
{
$time=date("d M Y H:i:s");
// Get the error type from the error number
$errortype = array (1 => "Error",
2 => "Warning",
4 => "Parsing Error",
8 => "Notice",
16 => "Core Error",
32 => "Core Warning",
64 => "Compile Error",
128 => "Compile Warning",
256 => "User Error",
512 => "User Warning",
1024 => "User Notice");
$errlevel=$errortype[$errno];
//Write error to log file (CSV format)
$errfile=fopen("errors.csv","a");
fputs($errfile,"\"$time\",\"$filename:
$linenum\",\"($errlevel) $errmsg\"\r\n");
fclose($errfile);
if($errno!=2 && $errno!=8) {
//Terminate script if fatal error
die("A fatal error has occurred. Script execution has been aborted");
}
}
?>
После этих манипуляций вы найдете файл с именем errors.csv в папке, где находится ваш файл index.php. Загрузите и откройте файл errors.csv с помощью любого текстового редактора, вы найдете там журнал ошибок.
Ответ 4
Перейдите на страницу backoffice.
Дополнительные параметры → Производительность → Чистый кэш (значок ластика)