PHP - Когда отображается ошибка 404 И Показать ошибки для веб-мастера на отдельной странице?

0

Это мое любопытство, о котором я думал прошлой ночью. Обычно, когда я обновляю свой PHP на веб-сайте, я получаю ошибку из-за отсутствия буквы или символа правильно. Если это будет сделано при редактировании живого сайта, посетители могут увидеть ошибки.

Итак, вот идея, которую я не нашел однажды в Google, и я надеюсь, что это возможно.

Скажем, я испортил строку кода на сайте с 3000 строк, который является живым.

Можно ли сообщить сайту через PHP, что если есть ошибка для перенаправления всех посетителей сайта на страницу "Ошибка 404" или "Техническое обслуживание", но с другой стороны отображаются ошибки на пользовательской странице, которую видит только веб-мастер?

В основном так.

Мой сайт достигает ошибки.

Посетители сайта перенаправляются на: http://example.com/maintenance.php И для просмотра фактической ошибки я посещаю http://example.com/webmasterError.php?

Я знаю, что вы можете отправлять свои сообщения по электронной почте, но это, скорее, эксперимент, который я могу реализовать позже, или кто-то другой может реализовать, если они сочтут это полезным.

Если я не ошибаюсь, ErrorDocument 500/500.html может сделать перенаправление на страницу обслуживания, но как насчет отображения ошибок на определенной странице?

Вот где я застрял.

Спасибо всем. Я понимаю, что это, вероятно, звучит как идея, которую придумал бы новичок, но я считаю, что иногда это может быть полезно.

РЕДАКТИРОВАТЬ

Некоторые пользователи упомянули использование localhost для редактирования, так что ошибки происходят только локально. Я не могу не согласиться с этим, но, чтобы добавить к другим возможностям использования этого, позвольте просто гипотетически сказать, что вы используете PHP для включения внешнего файла с другого сайта. Например, если получение информации о пользователе из API графиков Facebook и Facebook решит забрать страницу, к которой вы пытаетесь получить доступ. Возможно, на вашем сайте может появиться сообщение о том, что поток не может быть открыт. Это будет происходить на вашем сайте.

  • 0
    Да, это, конечно, возможно. Вы должны будете хранить информацию об ошибке где-то, откуда webmasterError.php затем читает. Однако что произойдет, если возникшая ошибка также приведет к сбою webmasterError.php?
  • 0
    Это звучит как хорошая идея, чтобы защитить посетителей от ошибок на вашем сайте. Но вы действительно должны сначала отредактировать свой сайт на локальном тестовом сервере, и когда вы закончите редактирование и будете знать, что он безошибочен, вы должны загрузить его на публичный сервер.
Показать ещё 2 комментария
Теги:
redirect

2 ответа

0
Лучший ответ

Вы говорите о журнале PHP, например, когда вы запускаете несколько бесконечных циклов или улов ошибок с помощью структуры try-catch?

Потому что вы можете сделать это разными способами:

Сделайте 2 страницы, простой 404, для посетителей или специальный, который читает таблицу mysql, хранящую все непонятные ошибки.

ИЛИ

подключитесь к вашему сайту, но имея специальную "учетную запись администратора" и на том же 404, что и пользователь, добавьте журналы ошибок.

  • 0
    Нет. Я говорю о реальной странице, которая отображает ошибку. Когда в моем коде есть ошибка, на странице отображается окно с кодом ошибки, в какой строке он находится, в каком файле и т. Д., И я надеялся, что есть способ отобразить эти коды ошибок на совершенно отдельной странице, чем посетитель показывает.
  • 0
    О хорошо Поэтому вам нужно отключить отображение ошибок (apache config), а затем на специальной странице PHP выполнить небольшую функцию, которая будет читать файл журнала apache и отображать его.
Показать ещё 1 комментарий
0

Поэтому я работал над этим. Теперь у меня есть мои ошибки, идущие к файлу журнала, который я собираюсь отобразить на отдельной странице. Однако я столкнулся с проблемой. Когда я тестирую, как обрабатываются мои ошибки, я просто удаляю ";" из одного из моих массивов, чтобы вызвать ошибку. Когда это произойдет, весь мой сайт опустится. Этого не ожидается. Я ожидаю, что сайт опустится, но я также ожидаю, что он отобразит какое-то сообщение, основанное на моем файле.htaccess.

ErrorDocument 400 "<p>Error 500</p><p>This Page Is Down For Maintenance.</p>"
ErrorDocument 401 "<p>Error 401</p><p>Authorization Required.</p>"
ErrorDocument 403 "<p>Error 403</p><p>Forbidden.</p>"
ErrorDocument 404 "<p>Error 404</p><p>Not Found.</p>"
ErrorDocument 500 "<p>Error 500</p><p>Internal Server Error.</p>"

# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off

# enable PHP error logging
php_flag  log_errors on
php_value error_log  PHP_errors.log

Я думал, что предупреждение "Ошибка 500" появится, когда код завершится неудачно, но вместо этого я получаю полностью пустую страницу.

Моя ошибка 404 работает отлично, хотя я знаю, что мой.htaccess файл читается сервером правильно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню