Это мое любопытство, о котором я думал прошлой ночью. Обычно, когда я обновляю свой PHP на веб-сайте, я получаю ошибку из-за отсутствия буквы или символа правильно. Если это будет сделано при редактировании живого сайта, посетители могут увидеть ошибки.
Итак, вот идея, которую я не нашел однажды в Google, и я надеюсь, что это возможно.
Скажем, я испортил строку кода на сайте с 3000 строк, который является живым.
Можно ли сообщить сайту через PHP, что если есть ошибка для перенаправления всех посетителей сайта на страницу "Ошибка 404" или "Техническое обслуживание", но с другой стороны отображаются ошибки на пользовательской странице, которую видит только веб-мастер?
В основном так.
Мой сайт достигает ошибки.
Посетители сайта перенаправляются на: http://example.com/maintenance.php И для просмотра фактической ошибки я посещаю http://example.com/webmasterError.php?
Я знаю, что вы можете отправлять свои сообщения по электронной почте, но это, скорее, эксперимент, который я могу реализовать позже, или кто-то другой может реализовать, если они сочтут это полезным.
Если я не ошибаюсь, ErrorDocument 500/500.html может сделать перенаправление на страницу обслуживания, но как насчет отображения ошибок на определенной странице?
Вот где я застрял.
Спасибо всем. Я понимаю, что это, вероятно, звучит как идея, которую придумал бы новичок, но я считаю, что иногда это может быть полезно.
РЕДАКТИРОВАТЬ
Некоторые пользователи упомянули использование localhost для редактирования, так что ошибки происходят только локально. Я не могу не согласиться с этим, но, чтобы добавить к другим возможностям использования этого, позвольте просто гипотетически сказать, что вы используете PHP для включения внешнего файла с другого сайта. Например, если получение информации о пользователе из API графиков Facebook и Facebook решит забрать страницу, к которой вы пытаетесь получить доступ. Возможно, на вашем сайте может появиться сообщение о том, что поток не может быть открыт. Это будет происходить на вашем сайте.
Вы говорите о журнале PHP, например, когда вы запускаете несколько бесконечных циклов или улов ошибок с помощью структуры try-catch?
Потому что вы можете сделать это разными способами:
Сделайте 2 страницы, простой 404, для посетителей или специальный, который читает таблицу mysql, хранящую все непонятные ошибки.
ИЛИ
подключитесь к вашему сайту, но имея специальную "учетную запись администратора" и на том же 404, что и пользователь, добавьте журналы ошибок.
Поэтому я работал над этим. Теперь у меня есть мои ошибки, идущие к файлу журнала, который я собираюсь отобразить на отдельной странице. Однако я столкнулся с проблемой. Когда я тестирую, как обрабатываются мои ошибки, я просто удаляю ";" из одного из моих массивов, чтобы вызвать ошибку. Когда это произойдет, весь мой сайт опустится. Этого не ожидается. Я ожидаю, что сайт опустится, но я также ожидаю, что он отобразит какое-то сообщение, основанное на моем файле.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 файл читается сервером правильно.