Когда я добавляю «display_errors = off» в мой файл php.ini, у меня все равно отображаются некоторые ошибки php.
ПЕРЕД добавлением display_errors = off в мой файл php.ini Я получал полные пути и т. Д., Отображал (много информации. Не предназначено для просмотра пользователем). ПОСЛЕ помещения display_errors = off в мой файл php.ini, я получаю гораздо меньше информации об ошибках. отображается, однако я по-прежнему получаю следующую ошибку: «Извините, произошла ошибка: доступ пользователя« username »@« localhost »к базе данных« mydatabase »запрещен.« Извините, произошла ошибка »- мой пользовательский текст connect_error die , и это все, что я хотел бы отобразить. Но рендеринг имени пользователя и базы данных я бы хотел избежать. Есть ли что-то еще, что мне нужно добавить в мой файл php.ini, или это может быть функция использования connect_error и умереть в моем php-коде? Мой хост-сайт LAMP не разрешает мне доступ к .htaccess и некоторым другим файлам конфигурации. Но у меня есть собственный файл php.ini, который я могу редактировать.
Как только у меня будет работать display_error так, как я хочу, я хотел бы добавить log_errors & error_log в мой файл php.ini, чтобы я мог регистрировать ошибки php для отладки.
Вот моя строка в php.ini:
display_errors = off
Вот мой код проверки соединения в моих файлах php (если это поможет):
if ($con->connect_error) {
die("Sorry, there was an error: " . $con->connect_error);
}
Я ожидал, что display_errors = off в моем php.ini даст мне пустой экран во время выполнения или только для отображения «Извините, произошла ошибка», что будет моим предпочтением. Любые комментарии предложения приветствуются. Спасибо.
ОБНОВЛЕНИЕ: После прочтения комментариев, которые я получил к своему оригинальному сообщению, я попытался изменить некоторый код и добавить некоторый код.
Я добавил следующую строку кода непосредственно перед установлением соединения mysql db, чтобы в моем журнале ошибок php сообщалось об ошибках mysql:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Затем я добавил следующие строки в свой php.ini, чтобы все ошибки не отображались, а записывались в журнал ошибок php:
error_reporting = E_ALL
display_errors = off
log_errors = on
error_log = ../logs/my_php_error_log
Я полностью закомментировал свой код "$ con> connect_error" (ниже), поскольку все ошибки mysql / php теперь все равно записываются в файл, который я часто проверяю. ПРИМЕЧАНИЕ. Если проверка соединения НЕ является неэффективной практикой, сообщите мне:
/*
if ($con->connect_error) {
die("Sorry, there was an error.");
}
*/
Все вышеперечисленные изменения, которые я сделал, основаны на том, что я узнал из комментариев к моему оригинальному сообщению, и на более подробную информацию, которую я прочитал по ссылкам, предоставленным теми, кто комментировал. Спасибо.