Как отлавливать и регистрировать каждую ошибку PHP и JS на рабочем сайте? - PullRequest
2 голосов
/ 02 июля 2011

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

Поэтому я бы хотел перехватить каждую ошибку или предупреждение PHP и JS и поставитьэто в журнале ошибок (лучше всего - в базу данных).Есть ли готовое, простое решение для достижения этой цели?Я обращаюсь с этим вопросом к опытным веб-разработчикам.

Или есть ли какой-либо способ сбросить все данные о сеансе пользователя во время возникновения ошибки, легко доступной для нетехнического пользователя?Я вижу это так: когда у пользователя появляется эта ошибка, он щелкает что-то (например, в расширении или что-то в этом роде), и это отправляет мне всю информацию о сеансе, об ошибке, чтобы я мог выяснить, что происходит.Знаете ли вы какое-либо решение такого рода?

Ответы [ 2 ]

1 голос
/ 02 июля 2011

Идея mplungjan хороша.

Я бы также попросил клиента просмотреть исходный код страницы и отправить его мне, чтобы убедиться, что он выглядит нормально.

Ваш веб-сервер (например, apache) должен хранить файл журнала каждого отдельного PHP-запроса и сообщать вам, произошли ли ошибки.

Я не знаю, есть ли способ сообщить об ошибках JavaScript обратно на ваш сервер. Если бы вы смогли перехватить ошибку и отправить запрос AJAX в ваш обработчик ошибок, чтобы войти на ваш сервер, это сработало бы. Но я думаю, что некоторые ошибки JavaScript (например, синтаксические ошибки?) Не могут быть обнаружены с помощью catch. Я хотел бы попросить клиента открыть консоль javascript (или как она называется в его браузере) и сообщить мне все ошибки, которые он видит. В конечном итоге вы должны устранить все ошибки, и хорошей стратегией для этого будет сосредоточиться на первой возникшей ошибке.

Я бы запустил страницу через валидатор w3c, чтобы проверить, является ли он верным HTML / CSS.

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

0 голосов
/ 02 июля 2011

Вам необходимо различать два типа ошибок: на стороне клиента и на стороне сервера.

Пустой может быть и то и другое, но я думаю, что, скорее всего, это на стороне сервера.

Для ошибок на стороне сервера вы можете регистрировать каждую ошибку и даже добавлять собственную информацию, такую ​​как сеанс, зарегистрировав свой собственный обработчик ошибок .Затем вы можете зарегистрировать ошибки в базе данных и добавить сеанс и запросить информацию, а также предоставить backtrace .Это позволит вам получить больше информации.

Для клиента Ответ Дэвида Грейсона содержит предложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...