<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Блог сисадмина &#187; &nbsp;Веб-приложения</title>
	<atom:link href="http://avz.org.ua/wp/category/tips-and-tricks/web-apps/feed/" rel="self" type="application/rss+xml" />
	<link>http://avz.org.ua/wp</link>
	<description>Заметки о Linux и прочие полезные howto</description>
	<lastBuildDate>Fri, 30 Jul 2010 18:37:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>WordPress: борьба со спамом</title>
		<link>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/</link>
		<comments>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 18:08:46 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ Веб-приложения]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=629</guid>
		<description><![CDATA[Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &#8211; повесить ссылку на продвигаемый спамером сайт. Есть, конечно, для этого дела много разных плагинов, типа Akismet, Bad Behavior, Parasite Eliminator. Но мне больше нравится следующий простой и эффективный метод, не требующий установки никаких плагинов. Нужно просто переименовать поля формы для ввода комментария. [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/22/wordpress-tuning/' rel='bookmark' title='Permanent Link: Тонкая настройка wordpress'>Тонкая настройка wordpress</a> <small>В этой статье освещены следующие темы: Тайм-аут при загрузке файлов с удаленных хостов Отложенная публикация Удаление черновиков Статический блок в...</small></li>
<li><a href='http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/' rel='bookmark' title='Permanent Link: Внедряем Captcha в CuteNews'>Внедряем Captcha в CuteNews</a> <small>Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть, конечно, для этого дела много разных плагинов, типа Akismet, Bad Behavior, Parasite Eliminator. Но мне больше нравится следующий простой и эффективный метод, не требующий установки никаких плагинов. Нужно просто переименовать поля формы для ввода комментария. И всё! Спамерское программное обеспечение, которое рассылает спам по блогам в автоматическом режиме, как раз и ориентируется на наличие полей в форме с определенными именами. Куда и пытается совать всякую фигню типа &laquo;Отличный блог, добавил в закладки :)&raquo; ни в коем случае на забывая оставить ссылочку. В случае с WordPress это поля <strong>comment</strong>, <strong>email</strong>, <strong>url</strong> и <strong>author</strong>. Поэтому в директории, соответствующей установленной теме, нужно отредактировать файл comment.php следующим образом.</p>
<ol>
<li>Для начала 41-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="41">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>textarea name<span class="sy0">=</span><span class="st0">&quot;comment&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;comment&quot;</span> rows<span class="sy0">=</span><span class="st0">&quot;8&quot;</span> cols<span class="sy0">=</span><span class="st0">&quot;40&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;1&quot;</span><span class="sy0">&gt;&lt;/</span>textarea<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="41">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>textarea name<span class="sy0">=</span><span class="st0">&quot;komment&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;komment&quot;</span> rows<span class="sy0">=</span><span class="st0">&quot;8&quot;</span> cols<span class="sy0">=</span><span class="st0">&quot;40&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;1&quot;</span><span class="sy0">&gt;&lt;/</span>textarea<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>Далее 55-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="55">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;author&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;author&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;2&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="55">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;aftar&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;aftar&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;2&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>60-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="60">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;email&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;email&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_email; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;3&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="60">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;pochta&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;pochta&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_email; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;3&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>72-ую строку
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="72">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;url&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;url&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_url; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;4&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
<p>меняем на:</p>
<div class="geshi php">
<div class="head">/wp-content/themes/<ваша тема>/forms/comment.php</div>
<ol start="72">
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;sait&quot;</span> id<span class="sy0">=</span><span class="st0">&quot;sait&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&lt;?php echo $comment_author_url; ?&gt;&quot;</span> size<span class="sy0">=</span><span class="st0">&quot;22&quot;</span> tabindex<span class="sy0">=</span><span class="st0">&quot;4&quot;</span> <span class="sy0">/&gt;</span></div>
</li>
</ol>
</div>
</li>
<li>Затем в файле /wp-comments-post.php меняем код, где упоминаются эти поля формы:
<div class="geshi php">
<div class="head">/wp-comments-post.php</div>
<ol start="40">
<li class="li1">
<div class="de1"><span class="re1">$comment_author</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;author&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">strip_tags</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;author&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_email</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;email&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;email&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_url</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;url&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;url&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_content</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;comment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;comment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Заменяя оригинальные имена на полей на те, что придумали ранее:</p>
<div class="geshi php">
<div class="head">/wp-comments-post.php</div>
<ol start="40">
<li class="li1">
<div class="de1"><span class="re1">$comment_author</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;aftar&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="kw3">strip_tags</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;aftar&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_email</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;pochta&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;pochta&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_author_url</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;sait&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;sait&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$comment_content</span> <span class="sy0">=</span> <span class="br0">&#40;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;komment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span> ? <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re1">$_POST</span><span class="br0">&#91;</span><span class="st0">&#39;komment&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="kw2">null</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
</li>
<p>Лично у меня после этих модификаций спам полностью прекратился. А до этого было по 15-20 штук спамерских сообщений в сутки. Хоть на сайте они и не появлялись, так как Akismet их прилежно отлавливал, но все равно нужно было вручную удалять из админки весь этот хлам, чтобы не замусоривать базу данных. Новые имена полей могут быть любыми, лишь бы они отличались от исходных.</p>
<p>Недостаток такого метода в том, что после обновления WordPress изменения, скорей всего, потеряются и нужно будет либо проделать правки заново, либо пред обновлением сохранить файлы comment.php и wp-comments-post.php, а после обновления &ndash; заменить новые на старые. Кроме того, спам через trackback-и все равно пролезет. Поэтому нужно либо их запретить (например, правилами модуля Apache ModRewrite), либо поставить какой-то плагин вроде Simple Trackback Validation.</p>
<p>Все это проверялось на версиях WordPress 2.9.0 и 2.9.1. Для других версий могут быть отличия в коде и в номерах строк.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/07/22/wordpress-tuning/' rel='bookmark' title='Permanent Link: Тонкая настройка wordpress'>Тонкая настройка wordpress</a> <small>В этой статье освещены следующие темы: Тайм-аут при загрузке файлов с удаленных хостов Отложенная публикация Удаление черновиков Статический блок в...</small></li>
<li><a href='http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/' rel='bookmark' title='Permanent Link: Внедряем Captcha в CuteNews'>Внедряем Captcha в CuteNews</a> <small>Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для...</small></li>
<li><a href='http://avz.org.ua/wp/2009/05/14/samba-cups-error/' rel='bookmark' title='Permanent Link: Ошибка Samba: Unable to connect to CUPS server'>Ошибка Samba: Unable to connect to CUPS server</a> <small>Часто встречается ситуация, когда на файловом сервере под Samba, где никаких принтеров нет и не будет, в лог-файл smbd.log постоянно...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Внедряем Captcha в CuteNews</title>
		<link>http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/</link>
		<comments>http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 21:04:58 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ Веб-приложения]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[cutenews]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=418</guid>
		<description><![CDATA[Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для обратной связи с автором, либо форма добавления ссылки в каталог ссылок или еще что-то подобное). Одним из наиболее эффективных способов противодействия появлению спама на веб-страницах является CAPTCHA (расшифровывается как Completely Automated Public Turing test to [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/10/liga-passw-reset/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в системе &laquo;ЛИГА-Закон&raquo;'>Сброс пароля администратора в системе &laquo;ЛИГА-Закон&raquo;</a> <small>Чтобы сбросить пароль администратора в системе Liga, нужно в директорииc:\program files\liga70\data удалить файлы ubd.dat и ubd.idx. При этом вся информация...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="pic" title="Пример реализации CAPTCHA" src="http://avz.org.ua/wp/wp-content/uploads/2009/08/captcha2.gif" alt="captcha example" width="250" height="186" />Защита от спама сейчас &#8211; просто необходимый элемент любого сайта, где присутствует возможность заполнения каки-либо форм (будь то форма для обратной связи с автором, либо форма добавления ссылки в каталог ссылок или еще что-то подобное). Одним из наиболее эффективных способов противодействия появлению спама на веб-страницах является CAPTCHA (расшифровывается как Completely Automated Public Turing test to tell Computers and Humans Apart) т.е. одна из разновидностей <a href="http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%81%D1%82_%D0%A2%D1%8C%D1%8E%D1%80%D0%B8%D0%BD%D0%B3%D0%B0">теста Тьюринга</a>. Пример такого теста в достаточно жеcтком для пользователя варианте :) приведен на картинке слева.
<p>Порядок установки CAPTCHA в новостной скрипт CuteNews.</p>
<ol>
<li>Добавляем в файл site/data/Default.tpl в код формы ввода комментария (примерно 62-ая строка):
<div class='code'>Текст на картинке: &lt;input type=&#8217;text&#8217; name=&#8217;captcha&#8217; /&gt; &lt;img src=&#8217;captcha.php&#8217; alt=&#8217;picture with code&#8217; /&gt;&lt;br /&gt;</div>
</li>
<li>Положить в корень сайта файлы captcha.php и Comic_Sans_MS.ttf. Взять их можно <a href="http://www.w3box.ru/captcha/">тут</a>.</li>
<li>Поправить файл site/inc/shows.inc.php, добавив в него начиная примерно со 172-ой строки следующее:
<div class='code'>@session_start();<br />
if (! (isset($_SESSION["captcha"]) &amp;&amp; $_SESSION["captcha"]===$_POST["captcha"]) ) {<br />
echo &quot;&lt;div align=\&quot;center\&quot; style=\&quot;font-size: 16px; color: red\&quot;&gt;Текст с картинки введен НЕВЕРНО&lt;br/&gt;&lt;br/&gt;&lt;a href=\&quot;javascript:history.go(-1)\&quot;&gt;Вернуться назад&lt;/a&gt;&lt;/div&gt;&quot;;<br />
$CN_HALT = TRUE;<br />
break 1;<br />
}<br />
unset($_SESSION["captcha"]);</div>
</li>
<li>Поудалять из файла site/data/comments.txt спам-комментарии, которые попали туда до того, как была прикручена captcha :)</li>
</ol>
<p>Чтобы эта версия captcha работала, PHP должен быть сконфигурирован со следующими опциями (актуально для версии 5.3.0):<br />
−−with-gd=/usr<br />
−−enable-gd-native-ttf<br />
−−with-freetype-dir=/usr<br />
−−with-zlib<br />
−−with-zlib-dir=/usr</p>
<p>Путь к библиотекам (/usr), естественно, следует заменить так, чтобы он был актуален для Вашей системы.</p>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2009/06/10/liga-passw-reset/' rel='bookmark' title='Permanent Link: Сброс пароля администратора в системе &laquo;ЛИГА-Закон&raquo;'>Сброс пароля администратора в системе &laquo;ЛИГА-Закон&raquo;</a> <small>Чтобы сбросить пароль администратора в системе Liga, нужно в директорииc:\program files\liga70\data удалить файлы ubd.dat и ubd.idx. При этом вся информация...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/08/24/cutenews-with-captcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Тонкая настройка wordpress</title>
		<link>http://avz.org.ua/wp/2009/07/22/wordpress-tuning/</link>
		<comments>http://avz.org.ua/wp/2009/07/22/wordpress-tuning/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 19:27:51 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ Веб-приложения]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://avz.org.ua/wp/?p=329</guid>
		<description><![CDATA[В этой статье освещены следующие темы: Тайм-аут при загрузке файлов с удаленных хостов Отложенная публикация Удаление черновиков Статический блок в начале каждого поста Подсветка кода Проблемы с установкой плагинов Отключение авто-замены Запрет запуска скриптов из директории uploads Сброс пароля пользователя Столкнулся с проблемой: когда пытался обновить wordpress до последней версии через админку, кликая по ссылке [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
<li><a href='http://avz.org.ua/wp/2008/08/21/danneo-charse/' rel='bookmark' title='Permanent Link: Проблемы с кодировкой в CMS Danneo 0.5.1'>Проблемы с кодировкой в CMS Danneo 0.5.1</a> <small>howto: лечим глюки с кодировкой в danneo 0.5.1. Поднять все на локалхосте (в денвере). Сделать дамп через phpmyadmin. Убедится, что...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>В этой статье освещены следующие темы:</p>
<ul>
<li>
<h4><a href="#wordpress_download_timeout">Тайм-аут при загрузке файлов с удаленных хостов</a></h4>
</li>
<li>
<h4><a href="#wordpress_future_posting">Отложенная публикация</a></h4>
</li>
<li>
<h4><a href="#wordpress_delete_revisions">Удаление черновиков</a></h4>
</li>
<li>
<h4><a href="#wordpress_prepost_block">Статический блок в начале каждого поста</a></h4>
</li>
<li>
<h4><a href="#wordpress_syntax_highlighting">Подсветка кода</a></h4>
</li>
<li>
<h4><a href="#wordpress_plugins_install_trouble">Проблемы с установкой плагинов</a></h4>
</li>
<li>
<h4><a href="#wordpress_disable_auto_replace">Отключение авто-замены</a></h4>
</li>
<li>
<h4><a href="#wordpress_disable_scripts_in_uploads">Запрет запуска скриптов из директории uploads</a></h4>
</li>
<li>
<h4><a href="#wordpress_password_reset">Сброс пароля пользователя</a></h4>
</li>
</ul>
<ol>
<li><a name="wordpress_download_timeout"></a>Столкнулся с проблемой: когда пытался обновить wordpress до последней версии через админку, кликая по ссылке &laquo;обновить автоматчески&raquo;, получал ошибку примерно такого содержания: &laquo;за 30 секунд скачано только 1700000 байт из 2600000, неудача&raquo;. Оказалось, что шейпер на входящий трафик моего хостера не позволял за 30 секунд (а именно такой timeout был установлнен по умолчанию) стянуть весь диструбитив wordpress-а. Чтобы поменять этот тайм-аут, нужно в файле wp-admin/includes/file.php найти строку
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> wp_remote_get<span class="br0">&#40;</span><span class="re1">$url</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;timeout&#39;</span> <span class="sy0">=&gt;</span> <span class="nu0">30</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>и поменять ее, например, на</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> wp_remote_get<span class="br0">&#40;</span><span class="re1">$url</span><span class="sy0">,</span> <span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;timeout&#39;</span> <span class="sy0">=&gt;</span> <span class="nu0">60</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Таким образом, мы вдвое увеличили время ожидания отработки запроса.</p>
<p><strong>Дополнение от 2010-01-24.</strong> Начиная с версии 2.9.1, таймаут по умолчанию <a href="http://core.trac.wordpress.org/ticket/11551" rel="nofollow">уже установлен</a> в 300 сек (или 5 минут). Так что теперь эта проблема будет встречаться намного реже.</li>
<li><a name="wordpress_future_posting"></a>Отложенная публикация в wordpress 2.7. Чтобы заметки, запланированные на публикацию в будущем таки появлялись в блоге, нужно в cron добавить вызов скрипта wp-cron.php c параметром check. Значение параметра легко определить, временно добавив перед строкой
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span> <span class="re1">$_GET</span><span class="br0">&#91;</span><span class="st0">&#39;check&#39;</span><span class="br0">&#93;</span> <span class="sy0">!=</span> wp_hash<span class="br0">&#40;</span><span class="st0">&#39;187425&#39;</span><span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>что-то типа</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">echo</span><span class="br0">&#40;</span>wp_hash<span class="br0">&#40;</span><span class="st0">&#39;187425&#39;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Тогда, набрав в адресной строке броузера http://&lt;вашблог&gt;/wp-cron.php, можно увидеть значение хеша (46cbe1674da1d2888104482d6ed4f87f). Следовательно, из крона обращаться к http://&lt;вашблог&gt;/wp-cron.php?check=46cbe1674da1d2888104482d6ed4f87f. Естественно, для предотвращения DoS-атак лучше заменить стандартную последовательность 187425 на что-то другое. В WordPress 2.8.2 в файле wp-cron.php уже нет такой проверки, поэтому достаточно его просто вызывать без параметров, например добавив в системный cron что-то такое:</p>
<div class="geshi no bash">
<ol>
<li class="li1">
<div class="de1"><span class="kw2">wget</span> http:<span class="sy0">//</span>avz.org.ua<span class="sy0">/</span>wp-cron.php -O <span class="sy0">/</span>dev<span class="sy0">/</span>null <span class="nu0">2</span><span class="sy0">&gt;</span> <span class="sy0">/</span>dev<span class="sy0">/</span>null</div>
</li>
</ol>
</div>
</li>
<li><a name="wordpress_delete_revisions"></a>Чтобы удалить из базы данных ревизии постов (промежуточные их версии, которые образовываются в результате внесения изменений и дополнения постов), нужно выполнить такой простой SQL-запрос:
<div class="geshi no sql">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">DELETE</span> <span class="kw1">FROM</span> wp_posts <span class="kw1">WHERE</span> post_type<span class="sy0">=</span><span class="st0">&#39;revision&#39;</span>;</div>
</li>
</ol>
</div>
<p>Есть еще и <a href="http://avz.org.ua/wp/2009/07/22/wordpress-tuning/#comment-315">более изящный и правильный метод удаления черновых заметок</a>, который описан ниже в комментариях. Другие возможные значения поля &#8216;post_type&#8217; – attachment, page, post (для версии 2.8.4). Чтобы вообще запретить создание ревизий, нужно в файл wp-config.php добавить строку</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">define</span><span class="br0">&#40;</span><span class="st0">&#39;WP_POST_REVISIONS&#39;</span><span class="sy0">,</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
</li>
<li><a name="wordpress_prepost_block"></a>Если нужно, чтобы вверху над каждым постом отображался один и тот же блок HTML-кода, можно сделать так. Находим файл /wp-content/themes/&lt;имя_темы&gt;/content/content-default.php, и вставляем в него перед вот этой 25-ой строкой
<div class="geshi html4strict">
<div class="head">content-default.php</div>
<ol start="25">
<li class="li1">
<div class="de1"><span class="sc2"><span class="kw2">&lt;div</span> <span class="kw3">id</span><span class="sy0">=</span><span class="st0">&quot;post-content-&lt;?php the_ID() ?&gt;</span>&quot; class=&quot;hentry full <span class="sc2">&lt;?php sandbox_post_class() ?&gt;</span>&quot;&gt;</span></div>
</li>
</ol>
</div>
<p>нужный нам html-блок. Этот блок удобно заключить в конструкцию &lt;div id=&quot;myblock&quot;&gt;&#8230;&lt;/div&gt; и в файле со стилями CSS определить атрибуты для нашего блока. CSS-файл находится в директории /wp-content/themes/&lt;имя_темы&gt;/css/ и имеет имя, совпадающее с именем темы и расширение .css. Пример опеределения атрибутов:</p>
<div class="geshi no css">
<ol>
<li class="li1">
<div class="de1">div<span class="re0">#myblock</span> <span class="br0">&#123;</span><span class="kw1">padding-top</span><span class="sy0">:</span> <span class="re3">10px</span><span class="sy0">;</span> <span class="kw1">text-align</span><span class="sy0">:</span> <span class="kw2">center</span><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
</li>
<li><a name="wordpress_syntax_highlighting"></a>Если хотим, чтобы блоки с программным кодом красиво выделялись, как в этом посте &ndash; качаем и устанавливаем plugin <a href="http://blog.kno.at/tools/highlight-source-pro/">Highlight Source Pro</a>. Поддерживает более 90 языков, включая HTML, PHP, Perl, bash, CSS. Пример использования можно посмотреть на <a href="http://kno.at/files/images/highlight-source-pro_screenshot-1.png">скриншоте</a>.</li>
<li><a name="wordpress_plugins_install_trouble"></a>Если при установке плагинов WordPress ничего не качает и вместо этого спрашивает &laquo;информацию для соединения&raquo;, как <a rel="nofollow" href="http://www.chrisabernethy.com/wp-content/uploads/2008/12/connection_info_needed.jpg">на этом скриншоте</a>, то это означает, что он не может получить доступ на запись в каталог /wp-content/plugins и надо проверить права доступа. Запрашиваемая информация для соединения &ndash; это атрибуты доступа к FTP-серверу, на котором работает WordPress. Это таким образом WordPress пытается пойти по обходному пути когда видит, что у него нет прямого доступа к файловой системе.</li>
<li><a name="wordpress_disable_auto_replace"></a>Если нужно отключить авто-замену двойного дефиса на красивое тире (а это бывает нужно, например, при публикации документации по linux-командам, ключи (параметры) которых часто именно и начинаются с &#8216;--&#8217;), то нужно немного модифицировать код функции <strong>wptexturize</strong>. Для этого этот код
<div class="geshi php">
<div class="head">/wp-includes/formatting.php</div>
<ol start="57">
<li class="li1">
<div class="de1"><span class="re1">$static_characters</span> <span class="sy0">=</span> <span class="kw3">array_merge</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;&#8212;&#39;</span><span class="sy0">,</span> <span class="st0">&#39; -- &#39;</span><span class="sy0">,</span> <span class="st0">&#39;--&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &#8211; &#39;</span><span class="sy0">,</span> <span class="st0">&#39;xn&amp;#8211;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&#8230;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&laquo;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;<span class="es0">\&#39;</span>s&#39;</span><span class="sy0">,</span> <span class="st0">&#39;<span class="es0">\&#39;</span><span class="es0">\&#39;</span>&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &#8482;&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re1">$cockney</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$static_replacements</span> <span class="sy0">=</span> <span class="kw3">array_merge</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;&amp;#8212;&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &amp;#8212; &#39;</span><span class="sy0">,</span> <span class="st0">&#39;&amp;#8211;&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &amp;#8211; &#39;</span><span class="sy0">,</span> <span class="st0">&#39;xn--&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&amp;#8230;&#39;</span><span class="sy0">,</span> <span class="re1">$opening_quote</span><span class="sy0">,</span> <span class="st0">&#39;&amp;#8217;s&#39;</span><span class="sy0">,</span> <span class="re1">$closing_quote</span><span class="sy0">,</span> <span class="st0">&#39; &amp;#8482;&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re1">$cockneyreplace</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>меняем на этот код:</p>
<div class="geshi php">
<div class="head">/wp-includes/formatting.php</div>
<ol start="57">
<li class="li1">
<div class="de1"><span class="re1">$static_characters</span> <span class="sy0">=</span> <span class="kw3">array_merge</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;&#8212;&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &#8211; &#39;</span><span class="sy0">,</span> <span class="st0">&#39;xn&amp;#8211;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&#8230;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&laquo;&#39;</span><span class="sy0">,</span> <span class="st0">&#39;<span class="es0">\&#39;</span>s&#39;</span><span class="sy0">,</span> <span class="st0">&#39;<span class="es0">\&#39;</span><span class="es0">\&#39;</span>&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &#8482;&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re1">$cockney</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$static_replacements</span> <span class="sy0">=</span> <span class="kw3">array_merge</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&#39;&amp;#8212;&#39;</span><span class="sy0">,</span> <span class="st0">&#39; &amp;#8211; &#39;</span><span class="sy0">,</span> <span class="st0">&#39;xn--&#39;</span><span class="sy0">,</span> <span class="st0">&#39;&amp;#8230;&#39;</span><span class="sy0">,</span> <span class="re1">$opening_quote</span><span class="sy0">,</span> <span class="st0">&#39;&amp;#8217;s&#39;</span><span class="sy0">,</span> <span class="re1">$closing_quote</span><span class="sy0">,</span> <span class="st0">&#39; &amp;#8482;&#39;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re1">$cockneyreplace</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Похоже, что и в этой же функции происходит замена трех точек на unicode-символ троеточия и еще какие-то манипуляции с кавычками.</li>
<li><a name="wordpress_disable_scripts_in_uploads"></a>Если WordPress живет на сервере с Apache, то для запрета выполнения PHP- и CGI-скриптов в директории, куда wordpress сохраняет пользовательские файлы (/wp-content/uploads), достаточно положить туда файл .htaccess следующего содержания:
<div class="geshi no xml">
<div class="head">/wp-content/uploads/.htaccess</div>
<ol>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;FilesMatch</span> <span class="st0">&quot;\.(phtml|php3?|pl|cgi)$&quot;</span><span class="re2">&gt;</span></span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; Deny from all</div>
</li>
<li class="li1">
<div class="de1"><span class="sc3"><span class="re1">&lt;/FilesMatch<span class="re2">&gt;</span></span></span></div>
</li>
</ol>
</div>
<p>Это весьма рекомендуется сделать, поскольку снижает риск успешного взлома в случае, если злоумышленнику каким-то образом удастся загрузить php-shell или другие инструменты для своих темных делишек &ndash; запустить он их так просто не сможет. Также очень рекомендуется по возможности запрещать в firewall-е установку исходящих соединений с сервера хостинга на удаленные ресурсы.
</li>
<li><a name="wordpress_disable_scripts_in_uploads"></a>Для изменения пароля пользователя (например, если он был успешно забыт) достаточно одного простого SQL-запроса. Например, чтобы установить для пользователя <strong>admin</strong> пароль <strong>Gyhusdf3f</strong>, делаем так:
<div class="geshi no sql">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">UPDATE</span> wp_users <span class="kw1">SET</span> user_pass<span class="sy0">=</span>MD5<span class="br0">&#40;</span><span class="st0">&#39;Gyhusdf3f&#39;</span><span class="br0">&#41;</span> <span class="kw1">WHERE</span> user_login<span class="sy0">=</span><span class="st0">&#39;admin&#39;</span>;</div>
</li>
</ol>
</div>
</li>
</ol>
<div align="center" style="padding-bottom: 10px"><script type="text/javascript"><!--
google_ad_client = "pub-9566425191373950";
/* avzwp_468x60_20091129 */
google_ad_slot = "3298568033";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/01/23/wp-autospam-blocking/' rel='bookmark' title='Permanent Link: WordPress: борьба со спамом'>WordPress: борьба со спамом</a> <small>Посвящается тем, кого утомили тонны спама в комментариях, оставляемые с единственной целью &ndash; повесить ссылку на продвигаемый спамером сайт. Есть,...</small></li>
<li><a href='http://avz.org.ua/wp/2008/08/21/danneo-charse/' rel='bookmark' title='Permanent Link: Проблемы с кодировкой в CMS Danneo 0.5.1'>Проблемы с кодировкой в CMS Danneo 0.5.1</a> <small>howto: лечим глюки с кодировкой в danneo 0.5.1. Поднять все на локалхосте (в денвере). Сделать дамп через phpmyadmin. Убедится, что...</small></li>
<li><a href='http://avz.org.ua/wp/2010/01/27/sed-trick/' rel='bookmark' title='Permanent Link: Штучки с sed-ом'>Штучки с sed-ом</a> <small>sed &ndash; это stream editor. Часто используется в скриптах для различных преобразований текста. Ниже приведено несколько типичных примеров. Удаление из...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2009/07/22/wordpress-tuning/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Проблемы с кодировкой в CMS Danneo 0.5.1</title>
		<link>http://avz.org.ua/wp/2008/08/21/danneo-charse/</link>
		<comments>http://avz.org.ua/wp/2008/08/21/danneo-charse/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 18:23:48 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ Веб-приложения]]></category>
		<category><![CDATA[danneo]]></category>

		<guid isPermaLink="false">http://avz.site40.net/wp/?p=7</guid>
		<description><![CDATA[howto: лечим глюки с кодировкой в danneo 0.5.1. Поднять все на локалхосте (в денвере). Сделать дамп через phpmyadmin. Убедится, что кодировка дампа&#160;&#8211;&#160;cp1251. Залить дамп на сервер с помощью команды mysql -u -h 127.0.0.1 --default-character-set=cp1251 -p < localhost_danneo_051_dump.sql С помощью phpmyadmin на сервере проверяем, что все читабельно, например, в таблице block. Если видим в админке вопросы [...]


Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/09/24/snow-white-and-the-seven-dwarfs/' rel='bookmark' title='Permanent Link: Проблемы с Белоснежкой и семью гномами в Windows 2000'>Проблемы с Белоснежкой и семью гномами в Windows 2000</a> <small>Цитата с сайта Microsoft: При попытке воспроизвести DVD-фильм &quot;Белоснежка и семь гномов&quot; (&quot;платиновая&quot; коллекция) пользователь может столкнуться с искажением или...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>howto:</strong> лечим глюки с кодировкой в danneo 0.5.1.</p>
<ol>
<li>Поднять все на локалхосте (в денвере).
<li>Сделать дамп через phpmyadmin. Убедится, что кодировка дампа&nbsp;&ndash;&nbsp;<em>cp1251</em>.
<li>Залить дамп на сервер с помощью команды<br />
<code>mysql <db> -u <user> -h 127.0.0.1 --default-character-set=cp1251 -p < localhost_danneo_051_dump.sql</code></p>
<li>С помощью phpmyadmin на сервере проверяем, что все читабельно, например, в таблице block.
<li>Если видим в админке вопросы вместо русского, добавляем строчку<br />
<code>$db->query("set names cp1251");</code><br />
в файл <em>apanel/base/danneo.database.php</em> в самый конец.</p>
<li>Если видим на главной странице вопросы вместо русского, добавляем строку<br />
<code>$db->query("set names cp1251");</code><br />
в файл <em>index.php</em>.
</ol>


<p>Похожие заметки:<ol><li><a href='http://avz.org.ua/wp/2010/02/16/samba-access-per-ip-address/' rel='bookmark' title='Permanent Link: Раздаем права в samba по IP-адресу'>Раздаем права в samba по IP-адресу</a> <small>Представим ситуацию: есть samba-пользователь vasya, который ходит на samba-сервер с компьютеров с IP-адресами 172.16.0.7 и 172.16.0.13, и нужно сделать так,...</small></li>
<li><a href='http://avz.org.ua/wp/2009/06/04/freebsd-nat/' rel='bookmark' title='Permanent Link: Строим NAT средствами FreeBSD'>Строим NAT средствами FreeBSD</a> <small>Для наглядности считаем, что внутренняя сеть адресуется блоком 192.168.0.0/24, шлюзом для внутренней сети выступает 192.168.0.1, IP-адрес внешнего интерфейса роутера &ndash;...</small></li>
<li><a href='http://avz.org.ua/wp/2009/09/24/snow-white-and-the-seven-dwarfs/' rel='bookmark' title='Permanent Link: Проблемы с Белоснежкой и семью гномами в Windows 2000'>Проблемы с Белоснежкой и семью гномами в Windows 2000</a> <small>Цитата с сайта Microsoft: При попытке воспроизвести DVD-фильм &quot;Белоснежка и семь гномов&quot; (&quot;платиновая&quot; коллекция) пользователь может столкнуться с искажением или...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://avz.org.ua/wp/2008/08/21/danneo-charse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
