<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
	<channel>
		<title>cotonti.com : Отлов фатальных ошибок (#776)</title>
		<link>https://www.cotonti.com</link>
		<description>Last topic posts</description>
		<generator>Cotonti</generator>
		<language>en</language>
		<pubDate>Tue, 14 Apr 2026 16:42:11 -0000</pubDate>

		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<p>
	Значит так и <a href="https://github.com/Cotonti/Cotonti/issues/776" rel="nofollow">сделаем</a>.</p>
]]></description>
			<pubDate>Fri, 16 Dec 2011 07:57:25 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32114]]></link>
		</item>
		<item>
			<title>Macik</title>
			<description><![CDATA[<blockquote>
	<a href="https://www.cotonti.com/forums?m=posts&amp;p=32097%2332097">#32097</a> <strong>Trustmaster: </strong><br /><p>
		В принципе, есть альтернатива: писать в стандартный лог ошибок PHP с помощью функции <a href="http://php.net/manual/en/function.trigger-error.php" rel="nofollow">trigger_error()</a>. При этом на production-сайтах, где выключен debug_mode, ошибки на экран не выводятся. Вместо них-то и можно показывать красивую заставку с 503-статусом.</p>
</blockquote>
<p>
	Разумное решение. Лишних настроек нет. А админу один фиг - если на продакшене что-то упало надо будет разбираться и в логи залезать. </p>
]]></description>
			<pubDate>Thu, 15 Dec 2011 23:57:23 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32112]]></link>
		</item>
		<item>
			<title>McDuck</title>
			<description><![CDATA[<p>
	2 Moool13</p>
<p>
	Думаю, это лучше (и красивее), чем выводить информацию об ошибке открыто на странице.</p>
]]></description>
			<pubDate>Thu, 15 Dec 2011 20:44:35 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32109]]></link>
		</item>
		<item>
			<title>Moool13</title>
			<description><![CDATA[<blockquote>
	<a href="https://www.cotonti.com/forums?m=posts&amp;p=32106%2332106">#32106</a> <strong>McDuck: </strong><br /><p>
		Проще всего спрятать в html-comment на 503 странице. Админу достаточно просто просмотреть исходный текст</p>
</blockquote>
<p>
	Думаешь другие этого не умеют?)</p>
]]></description>
			<pubDate>Thu, 15 Dec 2011 20:13:43 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32107]]></link>
		</item>
		<item>
			<title>McDuck</title>
			<description><![CDATA[<p>
	Проще всего спрятать в html-comment на 503 странице. Админу достаточно просто просмотреть исходный текст</p>
]]></description>
			<pubDate>Thu, 15 Dec 2011 19:38:01 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32106]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<p>
	Теперь о граблях. Чтобы писать в site.ru/log/somename.log, нужно эту папку создать и выставить там права на запись - народ будет возмущён лишними телодвижениями. Далее, чтобы защитить папку паролем, надо во-первых чтобы вебсервер был Apache (в эпоху набирающего обороты nginx), а во-вторых надо этот пароль задать (опять лишние телодвижения для ленивых). Наконец, за этим логом надо будет следить и периодически его подчищать или архивировать. Вот это всё меня и останавливало.</p>
<p>
	В принципе, есть альтернатива: писать в стандартный лог ошибок PHP с помощью функции <a href="http://php.net/manual/en/function.trigger-error.php" rel="nofollow">trigger_error()</a>. При этом на production-сайтах, где выключен debug_mode, ошибки на экран не выводятся. Вместо них-то и можно показывать красивую заставку с 503-статусом.</p>
]]></description>
			<pubDate>Thu, 15 Dec 2011 14:13:08 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32097]]></link>
		</item>
		<item>
			<title>Macik</title>
			<description><![CDATA[<blockquote>
	<a href="https://www.cotonti.com/forums?m=posts&amp;p=32057%2332057">#32057</a> <strong>Moool13: </strong><br /><p>
		Но при этом надо, чтобы админ смог увидеть ошибку</p>
</blockquote>
<p>
	Для этого и пишем в файл. К тому же если ошибка критическая можно хоть отправку емейла настроить.</p>
<p>
	(отписались практически одновременно)  <strong>Добавлю</strong>:</p>
<p>
	Для админа надо писать в лог site.ru/log/somename.log (имя лога можно задавать через config.php, чтобы обезапасить от стороннего просмотра),<br />
	можно в отдельную папку писать закрытую htaccess паролем.<br />
	Формат (для меня лично) особоразницы не имеет, plain-text как вариант, критические ошибки опционально (по настройке) отправлять мылом.</p>
<p>
	Опять же главное чтобы механизм был, т.е. можно начать с самого простого варианта, а потом вынести на обсуждение формат, отправку емейл и проч.</p>
]]></description>
			<pubDate>Wed, 14 Dec 2011 14:15:27 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32068]]></link>
		</item>
		<item>
			<title>Trustmaster</title>
			<description><![CDATA[<p>
	Давно об этом думал, но пока останавливало то, о чём Moool13 сказал :) То есть, куда писать ошибки и в каком формате, чтобы админ их смог быстро найти и проанализировать.</p>
]]></description>
			<pubDate>Wed, 14 Dec 2011 14:14:38 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32067]]></link>
		</item>
		<item>
			<title>Moool13</title>
			<description><![CDATA[<p>
	Но при этом надо, чтобы админ смог увидеть ошибку</p>
]]></description>
			<pubDate>Wed, 14 Dec 2011 11:53:51 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32057]]></link>
		</item>
		<item>
			<title>esclkm</title>
			<description><![CDATA[<p>
	согласен - еще в статью не вчитывался - но идея мне понравилась! записать ошибку в файл - а узеру показать красивую фигу</p>
]]></description>
			<pubDate>Wed, 14 Dec 2011 06:38:46 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32046]]></link>
		</item>
		<item>
			<title>Macik</title>
			<description><![CDATA[<p>
	Очередной раз при отдадке увидел:</p>
<pre class="brush:xml;">

2011-12-13 21:43

Fatal error: Could not connect to database !
Please check your settings in the file datas/config.php
MySQL error : SQLSTATE[28000] [1045] Access denied for user 'db_usr'@'localhost' (using password: YES)

#0  cot_diefatal(Could not connect to database !

		Please check your settings in the file datas/config.php

		MySQL error : SQLSTATE[28000] [1045] Access denied for user 'db_usr'@'localhost' (using password: YES)) called at [site\system\common.php:87]
#1  require_once(site\system\common.php) called at [site\index.php:37]
</pre>
<p>
	и родилась идея... создать правильный отлов таких (и прочих фатальных) ошибок.</p>
<p>
	Вот тут очень хорошо об этом написано: <a href="http://habrahabr.ru/blogs/php/134499/" rel="nofollow">http://habrahabr.ru/blogs/php/134499/</a></p>
<p>
	На словах и в примерах кода все довольно просто. Думаю в реализации тоже не сильно проблемно. Зато добавит + движку. И предотвратит утекание ненужной информации налево.</p>
<p>
	А если при этом еще и отдавать правильный код в HTTP ответе (например <a href="http://ru.wikipedia.org/wiki/%D1%EF%E8%F1%EE%EA_%EA%EE%E4%EE%E2_%F1%EE%F1%F2%EE%FF%ED%E8%FF_HTTP#503" rel="nofollow">503 Service Unavailable</a> (Сервис недоступен)), то и для всяких роботов хорошо будет.</p>
<p>
	 </p>
<p>
	 </p>
]]></description>
			<pubDate>Tue, 13 Dec 2011 21:51:40 -0000</pubDate>
			<link><![CDATA[https://www.cotonti.com/forums?m=posts&q=6671&d=0#post32042]]></link>
		</item>
	</channel>
</rss>