<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2russianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Chiliec</title><link>http://chiliec.ru</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Chiliec" /><description>Блог Чилийца</description><language>ru</language><lastBuildDate>Wed, 01 Feb 2012 00:55:11 PST</lastBuildDate><generator>http://wordpress.org/?v=3.2.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Chiliec" /><feedburner:info uri="chiliec" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><feedburner:emailServiceId>Chiliec</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Chiliec" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2FChiliec" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>Спасибо что подписались на мой блог! Надеюсь вы не разочаруетесь!</feedburner:browserFriendly><item><title>Установка reCAPTCHA на LiveStreet</title><link>http://feedproxy.google.com/~r/Chiliec/~3/uppAgTwvl6c/ustanovka-recaptcha-na-livestreet.html</link><category>LiveStreet</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chiliec</dc:creator><pubDate>Fri, 25 Nov 2011 21:29:15 PST</pubDate><guid isPermaLink="false">http://chiliec.ru/?p=782</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchiliec.ru%2Flivestreet%2Fustanovka-recaptcha-na-livestreet.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchiliec.ru%2Flivestreet%2Fustanovka-recaptcha-na-livestreet.html&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Понятно, что стандартная каптча не сможет хорошо защитить от спаммеров. Поэтому займемся её заменой. Я <a href="http://pgsha.info/" title="ПГСХА">для себя</a> выбрал reCAPTCHA, хотя её многие и не любят. Итак, <a href="https://www.google.com/recaptcha/admin/create">идем сюда</a> и получаем ключи: Public Key и Private Key. Public будем вставлять в JavaScript и он может быть найден в исходном коде, Private нужно хранить в секрете и использовать только на стороне сервера.<span id="more-782"></span></p>
<p><strong>Инструкция более не актуальна &#8211; собрал плагином!</strong><iframe src="http://livestreetcms.com/api/addons/list/frame/?width=550&#038;addon_action=1&#038;addons=329" height="240" width="570" style="border:0 none;margin:0;padding:0;"></iframe></p>
<p>Итак, приступаем к замене каптчи. Идем в <strong>/templates/skin/название-темы/actions/ActionRegistration</strong> и открываем файл <strong>index.tpl</strong> , в котором заменяем<div id="wpshdo_1" class="wp-synhighlighter-outer"><div id="wpshdt_1" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_1"></a><a id="wpshat_1" class="wp-synhighlighter-title" href="#codesyntax_1"  onClick="javascript:wpsh_toggleBlock(1)" title="Нажмите, чтобы показать или скрыть блок кода">index.tpl</a></td><td align="right"><a href="#codesyntax_1" onClick="javascript:wpsh_code(1)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_1" onClick="javascript:wpsh_print(1)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_1" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="sy0">&lt;</span>img src<span class="sy0">=</span><span class="st0">&quot;{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?<span class="es4">{$_sPhpSessionName}</span>=<span class="es4">{$_sPhpSessionId}</span>&quot;</span> onclick<span class="sy0">=</span><span class="st0">&quot;this.src='{cfg name='path.root.engine_lib'}/external/kcaptcha/index.php?<span class="es4">{$_sPhpSessionName}</span>=<span class="es4">{$_sPhpSessionId}</span>&amp;n='+Math.random();&quot;</span> <span class="sy0">/&gt;</span>
&nbsp;
		<span class="sy0">&lt;</span>p<span class="sy0">&gt;&lt;</span>input type<span class="sy0">=</span><span class="st0">&quot;text&quot;</span> name<span class="sy0">=</span><span class="st0">&quot;captcha&quot;</span> value<span class="sy0">=</span><span class="st0">&quot;&quot;</span> maxlength<span class="sy0">=</span><span class="st0">&quot;3&quot;</span> <span class="kw2">class</span><span class="sy0">=</span><span class="st0">&quot;input-100&quot;</span> <span class="sy0">/&gt;&lt;/</span>p<span class="sy0">&gt;</span></pre></div></div><br />
на<br />
<div id="wpshdo_2" class="wp-synhighlighter-outer"><div id="wpshdt_2" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_2"></a><a id="wpshat_2" class="wp-synhighlighter-title" href="#codesyntax_2"  onClick="javascript:wpsh_toggleBlock(2)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_2" onClick="javascript:wpsh_code(2)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_2" onClick="javascript:wpsh_print(2)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_2" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span> src<span class="sy0">=</span><span class="st0">&quot;http://api.recaptcha.net/challenge?k=ЗДЕСЬ_ВАШ_Public_Key&quot;</span><span class="sy0">&gt;</span>
<span class="sy0">&lt;/</span>script<span class="sy0">&gt;&lt;</span>noscript<span class="sy0">&gt;</span>Включите JavaScript или обновите ваш браузер<span class="sy0">!&lt;/</span>noscript<span class="sy0">&gt;</span></pre></div></div>Только не забудьте заменить <strong>ЗДЕСЬ_ВАШ_Public_Key</strong> на полученный ранее <strong>Public Key</strong>. Перед этим еще можно добавить<br />
<div id="wpshdo_3" class="wp-synhighlighter-outer"><div id="wpshdt_3" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_3"></a><a id="wpshat_3" class="wp-synhighlighter-title" href="#codesyntax_3"  onClick="javascript:wpsh_toggleBlock(3)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_3" onClick="javascript:wpsh_code(3)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_3" onClick="javascript:wpsh_print(3)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_3" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span>
        <span class="kw2">var</span> RecaptchaOptions <span class="sy0">=</span> <span class="br0">&#123;</span>
                custom_translations <span class="sy0">:</span> <span class="br0">&#123;</span>
                        instructions_visual <span class="sy0">:</span> <span class="st0">&quot;Введите два слова:&quot;</span><span class="sy0">,</span>
                        instructions_audio <span class="sy0">:</span> <span class="st0">&quot;Введите что вы слышите&quot;</span><span class="sy0">,</span>
                        play_again <span class="sy0">:</span> <span class="st0">&quot;Включить заново&quot;</span><span class="sy0">,</span>
                        cant_hear_this <span class="sy0">:</span> <span class="st0">&quot;Скачать в формате MP3&quot;</span><span class="sy0">,</span>
                        visual_challenge <span class="sy0">:</span> <span class="st0">&quot;Визуальный режим&quot;</span><span class="sy0">,</span>
                        audio_challenge <span class="sy0">:</span> <span class="st0">&quot;Режим аудио&quot;</span><span class="sy0">,</span>
                        refresh_btn <span class="sy0">:</span> <span class="st0">&quot;Обновить&quot;</span><span class="sy0">,</span>
                        help_btn <span class="sy0">:</span> <span class="st0">&quot;Помощь&quot;</span><span class="sy0">,</span>
                        incorrect_try_again <span class="sy0">:</span> <span class="st0">&quot;Неверно. Пожалуйста, попробуйте еще раз.&quot;</span><span class="sy0">,</span>
                <span class="br0">&#125;</span><span class="sy0">,</span>
                lang <span class="sy0">:</span> <span class="st_h">'ru'</span><span class="sy0">,</span> <span class="co1">// Unavailable while writing this code (just for audio challenge)</span>
                theme <span class="sy0">:</span> <span class="st_h">'white'</span> <span class="co1">// Make sure there is no trailing ',' at the end of the RecaptchaOptions dictionary</span>
        <span class="br0">&#125;</span><span class="sy0">;</span>
		<span class="kw2">&lt;/script&gt;</span></pre></div></div></p>
<p>для русификации. Подробнее о кастомизации каптчи смотрите <a href="http://code.google.com/intl/ru-RU/apis/recaptcha/docs/customization.html">здесь</a>.</p>
<p>Далее качаем саму библиотеку каптчи <a href="http://code.google.com/p/recaptcha/downloads/list?q=label:phplib-Latest">отсюда</a>, распаковываем и кладем её содержимое в <strong>/engine/lib/external/recaptcha</strong>. Далее идем в <strong>/classes/actions</strong>, открываем файл <strong>ActionRegistration.class.php</strong>. Добавляем в начало файла подключение библиотеки<br />
<div id="wpshdo_4" class="wp-synhighlighter-outer"><div id="wpshdt_4" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_4"></a><a id="wpshat_4" class="wp-synhighlighter-title" href="#codesyntax_4"  onClick="javascript:wpsh_toggleBlock(4)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_4" onClick="javascript:wpsh_code(4)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_4" onClick="javascript:wpsh_print(4)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_4" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw1">require_once</span> <span class="br0">&#40;</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st_h">'DOCUMENT_ROOT'</span><span class="br0">&#93;</span><span class="sy0">.</span><span class="st0">&quot;/engine/lib/external/recaptcha/recaptchalib.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div><br />
Затем удаляем или комментируем<br />
<div id="wpshdo_5" class="wp-synhighlighter-outer"><div id="wpshdt_5" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_5"></a><a id="wpshat_5" class="wp-synhighlighter-title" href="#codesyntax_5"  onClick="javascript:wpsh_toggleBlock(5)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_5" onClick="javascript:wpsh_code(5)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_5" onClick="javascript:wpsh_print(5)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_5" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st_h">'captcha_keystring'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> or <span class="re0">$_SESSION</span><span class="br0">&#91;</span><span class="st_h">'captcha_keystring'</span><span class="br0">&#93;</span><span class="sy0">!=</span><span class="kw3">strtolower</span><span class="br0">&#40;</span>getRequest<span class="br0">&#40;</span><span class="st_h">'captcha'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
				<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Message_AddError</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lang_Get</span><span class="br0">&#40;</span><span class="st_h">'registration_captcha_error'</span><span class="br0">&#41;</span><span class="sy0">,</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lang_Get</span><span class="br0">&#40;</span><span class="st_h">'error'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
				<span class="re0">$bError</span><span class="sy0">=</span><span class="kw4">true</span><span class="sy0">;</span></pre></div></div><br />
и добавляем<br />
<div id="wpshdo_6" class="wp-synhighlighter-outer"><div id="wpshdt_6" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_6"></a><a id="wpshat_6" class="wp-synhighlighter-title" href="#codesyntax_6"  onClick="javascript:wpsh_toggleBlock(6)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_6" onClick="javascript:wpsh_code(6)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_6" onClick="javascript:wpsh_print(6)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_6" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="re0">$resp</span> <span class="sy0">=</span> <span class="kw4">null</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">array_key_exists</span><span class="br0">&#40;</span><span class="st_h">'recaptcha_response_field'</span><span class="sy0">,</span><span class="re0">$_POST</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
<span class="re0">$resp</span> <span class="sy0">=</span> recaptcha_check_answer <span class="br0">&#40;</span><span class="st_h">'ЗДЕСЬ_ВАШ_Private_Key'</span><span class="sy0">,</span><span class="re0">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&quot;REMOTE_ADDR&quot;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;recaptcha_challenge_field&quot;</span><span class="br0">&#93;</span><span class="sy0">,</span><span class="re0">$_POST</span><span class="br0">&#91;</span><span class="st0">&quot;recaptcha_response_field&quot;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span><span class="br0">&#125;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$resp</span><span class="sy0">==</span><span class="kw4">null</span> or <span class="sy0">!</span><span class="re0">$resp</span><span class="sy0">-&gt;</span><span class="me1">is_valid</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
<span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Message_AddError</span><span class="br0">&#40;</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lang_Get</span><span class="br0">&#40;</span><span class="st_h">'registration_captcha_error'</span><span class="br0">&#41;</span><span class="sy0">,</span><span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lang_Get</span><span class="br0">&#40;</span><span class="st_h">'error'</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$bError</span><span class="sy0">=</span><span class="kw4">true</span><span class="sy0">;</span></pre></div></div><br />
Надеюсь не нужно объяснять, что нужно заменить <strong>ЗДЕСЬ_ВАШ_Private_Key</strong> на <strong>Private Key</strong>. <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> <br />
Установка reCAPTCHA на LiveStreet 0.5.1 завершена!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tQh3FoDzpl86ze52sRZmqaGHexk/0/da"><img src="http://feedads.g.doubleclick.net/~a/tQh3FoDzpl86ze52sRZmqaGHexk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tQh3FoDzpl86ze52sRZmqaGHexk/1/da"><img src="http://feedads.g.doubleclick.net/~a/tQh3FoDzpl86ze52sRZmqaGHexk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Chiliec/~4/uppAgTwvl6c" height="1" width="1"/>]]></content:encoded><description>Понятно, что стандартная каптча не сможет хорошо защитить от спаммеров. Поэтому займемся её заменой. Я для себя выбрал reCAPTCHA, хотя её многие и не любят. Итак, идем сюда и получаем ключи: Public Key и Private Key. Public будем вставлять в JavaScript и он может быть найден в исходном коде, Private нужно хранить в секрете и [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chiliec.ru/livestreet/ustanovka-recaptcha-na-livestreet.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">11</slash:comments><feedburner:origLink>http://chiliec.ru/livestreet/ustanovka-recaptcha-na-livestreet.html</feedburner:origLink></item><item><title>Первый день рождения домена .РФ</title><link>http://feedproxy.google.com/~r/Chiliec/~3/jA6y6r5JT8g/pervyj-den-rozhdeniya-domena-rf.html</link><category>Домены</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chiliec</dc:creator><pubDate>Sun, 30 Oct 2011 11:46:41 PDT</pubDate><guid isPermaLink="false">http://chiliec.ru/?p=780</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchiliec.ru%2Fdomains%2Fpervyj-den-rozhdeniya-domena-rf.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchiliec.ru%2Fdomains%2Fpervyj-den-rozhdeniya-domena-rf.html&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Чуть больше недели остается до года с открытия массовой регистрации доменов в зоне РФ, и конечно же, массового их дропа <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt=":)" title=":)"/> Ровно в полдень, 11 ноября 2010 года, домены .РФ стали доступны для регистрации всем желающим. Кто-то считает этот домен <a href="http://www.snob.ru/selected/entry/26995">злом и отмыванием денег</a>, кто-то благом и необходимостью разгрузки зоны RU, которая существует уже более 16 лет. Что же дала нам эта зона? Давайте разберемся.<span id="more-780"></span></p>
<p><strong>Зона .РФ</strong> &#8211; национальный домен верхнего уровня Российской Федерации. Это первый в Интернете домен на кириллице. Отличием от домена RU является то, что в домене РФ все имена второго уровня пишутся исключительно кириллицей в формате <a href="http://ru.wikipedia.org/wiki/Punycode" target="_blank">Punycode</a>, который преобразуется в человеко-понятный вид только на этапе вывода на экран пользователя.</p>
<p>Сразу скажу &#8211; я не сторонник данной доменной зоны, но всё же взял себе один домен для экспериментов, что и позволило мне выделить некоторые плюсы и минусы этой зоны.</p>
<p><strong>Плюсы</strong>:</p>
<ul>
<li>для среднестатистического гражданина РФ, деятельность которого в интернете ограничена времяпрепровождением в социальных сетях, запомнить такой домен гораздо проще.</li>
<li>небольшая стоимость (такая же, как у RU)</li>
<li>альтернативная возможность выбрать домен для своего проекта, который занят в других зонах</li>
</ul>
<p><strong>Минусы</strong>:</p>
<ul>
<li>Проблемы с почтой. Например, в большинстве случаев часть имени почтового ящика слева от символа «@» не может содержать кириллических символов. Даже если есть возможность регистрации кириллического имени в левой части, для написания символа «@» всё равно придется переключаться на английскую раскладку. И до сих пор не все почтовые службы умею корректно с ними работать.</li>
<li>Затрудненность доступа для иностранцев</li>
<li>Невозможность смены Администратора домена в течение года. Хотя этот минус можно отнести и к плюсам, либо вообще отбросить.</li>
<li>Довольно неуклюже смотрится сочетание латиницы и кириллицы в URL, например: правительство.рф/documents/</li>
<li>Пожалуй, самое обидное в этой зоне &#8211; это неоднократное изменение &laquo;правил игры&raquo; в то время, когда она уже идет.</li>
</ul>
<h3>Немного статистики</h3>
<p>На сегодня, 31 октября 2011 года, зарегистрировано 916115 (почти миллион) доменов (<a href="http://cctld.ru/ru/statistics/rfdomains.php" target="_blank">пруф</a>). Из которых почти 600 тысяч приходится на начало открытой регистрации (ноябрь 2010).<img src="http://chiliec.ru/wp-content/uploads/2011/10/rf.gif" alt="статистика домена .РФ" title=".РФ" width="480" height="288" class="aligncenter size-full wp-image-781" /><br />
Для сравнения &#8211; в зоне RU на сегодняшний день насчитывается порядка 3,5 миллионов доменов.</p>
<p><em>А что вы думаете по поводу данной доменной зоны? Есть ли на примете какие-то домены и будете ли пытаться их перехватить, если они освободятся?</em></p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ki8p-c_PUZktJSmvBig9Vx2b_xE/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ki8p-c_PUZktJSmvBig9Vx2b_xE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ki8p-c_PUZktJSmvBig9Vx2b_xE/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ki8p-c_PUZktJSmvBig9Vx2b_xE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Chiliec/~4/jA6y6r5JT8g" height="1" width="1"/>]]></content:encoded><description>Чуть больше недели остается до года с открытия массовой регистрации доменов в зоне РФ, и конечно же, массового их дропа Ровно в полдень, 11 ноября 2010 года, домены .РФ стали доступны для регистрации всем желающим. Кто-то считает этот домен злом и отмыванием денег, кто-то благом и необходимостью разгрузки зоны RU, которая существует уже более 16 [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chiliec.ru/domains/pervyj-den-rozhdeniya-domena-rf.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">1</slash:comments><feedburner:origLink>http://chiliec.ru/domains/pervyj-den-rozhdeniya-domena-rf.html</feedburner:origLink></item><item><title>Двадцать тысяч рублей на Новый год</title><link>http://feedproxy.google.com/~r/Chiliec/~3/bEUViLNRAvE/dvadcat-tysyach-rublej-na-novyj-god.html</link><category>Конкурсы</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chiliec</dc:creator><pubDate>Wed, 24 Aug 2011 08:20:37 PDT</pubDate><guid isPermaLink="false">http://chiliec.ru/?p=770</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchiliec.ru%2Fcompetitions%2Fdvadcat-tysyach-rublej-na-novyj-god.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchiliec.ru%2Fcompetitions%2Fdvadcat-tysyach-rublej-na-novyj-god.html&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Этот пост написан в поддержку конкурса «<strong>двадцать тысяч рублей на новый год</strong>». Если у вас есть сайт и вы хотите побороться за двадцать тысяч на новый год &#8211; читаем дальше.<span id="more-770"></span></p>
<h3>Подробнее о конкурсе «двадцать тысяч рублей на новый год»</h3>
<p>Принять участие в конкурсе «<strong>двадцать тысяч рублей на новый год</strong>» может любой сайт, не нарушающий законы РФ.<br />
Победителем же станет тот, чей сайт на момент 28 декабря 2011 года по запросу «<strong>двадцать тысяч рублей на новый год</strong>» будет находится на 3-ем месте в поисковой системе Яндекс в общероссийской выдаче. Обратите внимание &#8211; не первое место, как обычно, а именно третье. Есть в этом какая-то загадочность &#8211; это уже не просто битва бюджетов, а еще и в немалой степени удача. Особенно если вспомнить, что дело мы имеем с Яндексом <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt=":-)" title=":-)"/> </p>
<h3>Призы конкурса «двадцать тысяч рублей на новый год»</h3>
<p>По заявлению организаторов конкурса, победитель сможет получить свой приз наличными в Москве или почтовым переводом, если он проживает за пределами столицы. Остальные 9 участников из топ 10 получат поощрительные призы по 1111 рублей в WMR или ЯД.</p>
<h3>На что можно потратить призовые двадцать тысяч рублей?</h3>
<p>Потратить свой приз победитель естественно сможет на что угодно. Но так как это будет Новый год, а деньги наличными&#8230; то думаю вряд ли они пойдут на покупку сайта или ссылок <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/jokingly.gif"  alt="*JOKINGLY*" title="*JOKINGLY*"/> Особенно если победитель живет не в Москве, то наверняка он сможет получить их не раньше конца Новогодних праздников&#8230; (при условии что это будет через всеми любимую «Почту России»). Путем таких несложных рассуждений не сложно догадаться на что они будут потрачены. <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/laugh.gif"  alt=":-D" title=":-D"/> <br />
Всем участникам конкурса желаю удачи!</p>
<h3>Предновогоднее дополнение от 5 декабря 2011 г.</h3>
<p>Если я выиграю эти <strong>двадцать тысяч рублей</strong>, теперь я знаю куда их потрачу. Поскольку это будет самым разгаром сессии &#8211; пропить их не вариант. Поэтому вложу их в сайты &#8211; появились некоторые интересные задумки. Мне кажется это самым верным решением.<br />
Заодно посмотрю как это upd. отразится на моих <a href="http://chiliec.ru/yandex/" title="выдача двадцати тысяч рублей на новый год" target="_blank">позициях в выдаче</a> &#8211; сейчас я на 4 месте. И это при том, что кроме подписи на <a href="http://chiliec.ru/go/seobuilding/" title="Лучший SEO-форум рунета" target="_blank">seobuilding.ru</a> никаких внешних ссылок я не ставил! <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/wink.gif"  alt=";)" title=";)"/> </p>
<h3>Посленовогоднее дополнение от 5 января 2012 г.</h3>
<p>К сожалению, организатор конкурса решил не выплачивать обещанные призы и скрыться в неизвестном направлении. Жаль, хоть и не победа, но в топ-10 я всё же попал. Хотя, если бы победил &#8211; было бы еще обиднее. Поэтому <a href="http://2-mood.ru/" title="Победитель конкурса двадцать тысяч рублей на новый год" target="_blank">поддержу победителя ссылкой</a> &#8211; хоть какой-то плюс ему должен быть от всего этого, раз с призом так глупо получилось&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/4iLzNootadZxT0AGJ4vY1xP_ZzM/0/da"><img src="http://feedads.g.doubleclick.net/~a/4iLzNootadZxT0AGJ4vY1xP_ZzM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4iLzNootadZxT0AGJ4vY1xP_ZzM/1/da"><img src="http://feedads.g.doubleclick.net/~a/4iLzNootadZxT0AGJ4vY1xP_ZzM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Chiliec/~4/bEUViLNRAvE" height="1" width="1"/>]]></content:encoded><description>Этот пост написан в поддержку конкурса «двадцать тысяч рублей на новый год». Если у вас есть сайт и вы хотите побороться за двадцать тысяч на новый год &amp;#8211; читаем дальше. Подробнее о конкурсе «двадцать тысяч рублей на новый год» Принять участие в конкурсе «двадцать тысяч рублей на новый год» может любой сайт, не нарушающий законы [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chiliec.ru/competitions/dvadcat-tysyach-rublej-na-novyj-god.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">14</slash:comments><feedburner:origLink>http://chiliec.ru/competitions/dvadcat-tysyach-rublej-na-novyj-god.html</feedburner:origLink></item><item><title>Получаем тИЦ и PR в формате XML</title><link>http://feedproxy.google.com/~r/Chiliec/~3/Wu04F0_C0OY/poluchaem-tic-i-pr-v-formate-xml.html</link><category>PHP</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chiliec</dc:creator><pubDate>Sat, 20 Aug 2011 04:49:59 PDT</pubDate><guid isPermaLink="false">http://chiliec.ru/?p=767</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchiliec.ru%2Fphp%2Fpoluchaem-tic-i-pr-v-formate-xml.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchiliec.ru%2Fphp%2Fpoluchaem-tic-i-pr-v-formate-xml.html&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>На написание данного поста меня сподвигла <a href="http://www.seobuilding.ru/seo-forum/google/uznat_pr_ot_google/" target="_blank">вот эта тема</a> на форуме <a href="http://www.seobuilding.ru/seo-forum/index.php?action=register;referredby=29" title="Лучший SEO-форум рунета" target="_blank">Seobuilding.ru</a>. В ней ТС рассказал, как получить тИЦ в формате XML &#8211; при помощи такой вот строчки:<br />
<strong>http://bar-navig.yandex.ru/u?url=http://chiliec.ru&#038;show=1</strong><br />
и задал вопрос: можно ли так же в XML получить значение PR.<br />
Можно конечно делать это специальные сервисы, но это не надежно, да и бывают ограничения. Например <a href="http://api.exslim.net/docs/pagerank">здесь</a> ограничение в 100 запросов в сутки.<br />
Так что давайте напишем собственный скрипт. Для начала просто получим значение, а затем переведем его в XML.<span id="more-767"></span> Далее привожу получившийся у меня код, а так же архив с исходниками.<br />
<div id="wpshdo_7" class="wp-synhighlighter-outer"><div id="wpshdt_7" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_7"></a><a id="wpshat_7" class="wp-synhighlighter-title" href="#codesyntax_7"  onClick="javascript:wpsh_toggleBlock(7)" title="Нажмите, чтобы показать или скрыть блок кода">pagerank.php</a></td><td align="right"><a href="#codesyntax_7" onClick="javascript:wpsh_code(7)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_7" onClick="javascript:wpsh_print(7)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_7" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="kw2">function</span> StrToNum<span class="br0">&#40;</span><span class="re0">$Str</span><span class="sy0">,</span> <span class="re0">$Check</span><span class="sy0">,</span> <span class="re0">$Magic</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span class="re0">$Int32Unit</span> <span class="sy0">=</span> <span class="nu0">4294967296</span><span class="sy0">;</span>  <span class="co1">// 2^32</span>
&nbsp;
    <span class="re0">$length</span> <span class="sy0">=</span> <span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$Str</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$i</span> <span class="sy0">&lt;</span> <span class="re0">$length</span><span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">++</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$Check</span> <span class="sy0">*=</span> <span class="re0">$Magic</span><span class="sy0">;</span> 	
        <span class="co1">//Если число с плавающей точкой превышает пределы целого (обычно +/- 2.15e+9 = 2^31),</span>
        <span class="co1">//Результат преобразования в целое не определен</span>
        <span class="co1">//См. http://www.php.net/manual/ru/language.types.integer.php</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$Check</span> <span class="sy0">&gt;=</span> <span class="re0">$Int32Unit</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="re0">$Check</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$Check</span> <span class="sy0">-</span> <span class="re0">$Int32Unit</span> <span class="sy0">*</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span> <span class="br0">&#40;</span><span class="re0">$Check</span> <span class="sy0">/</span> <span class="re0">$Int32Unit</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span>
            <span class="co1">//Если меньше чем -2^31</span>
            <span class="re0">$Check</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="re0">$Check</span> <span class="sy0">&lt;</span> <span class="sy0">-</span>2147483648<span class="br0">&#41;</span> ? <span class="br0">&#40;</span><span class="re0">$Check</span> <span class="sy0">+</span> <span class="re0">$Int32Unit</span><span class="br0">&#41;</span> <span class="sy0">:</span> <span class="re0">$Check</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
        <span class="re0">$Check</span> <span class="sy0">+=</span> <span class="kw3">ord</span><span class="br0">&#40;</span><span class="re0">$Str</span><span class="br0">&#123;</span><span class="re0">$i</span><span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
    <span class="br0">&#125;</span>
    <span class="kw1">return</span> <span class="re0">$Check</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> HashURL<span class="br0">&#40;</span><span class="re0">$String</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span class="re0">$Check1</span> <span class="sy0">=</span> StrToNum<span class="br0">&#40;</span><span class="re0">$String</span><span class="sy0">,</span> 0x1505<span class="sy0">,</span> 0x21<span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$Check2</span> <span class="sy0">=</span> StrToNum<span class="br0">&#40;</span><span class="re0">$String</span><span class="sy0">,</span> 0<span class="sy0">,</span> 0x1003F<span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="re0">$Check1</span> <span class="sy0">&gt;&gt;=</span> <span class="nu0">2</span><span class="sy0">;</span> 	
    <span class="re0">$Check1</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&gt;&gt;</span> 4<span class="br0">&#41;</span> <span class="sy0">&amp;</span> 0x3FFFFC0 <span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3F<span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$Check1</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&gt;&gt;</span> 4<span class="br0">&#41;</span> <span class="sy0">&amp;</span> 0x3FFC00 <span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3FF<span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$Check1</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&gt;&gt;</span> 4<span class="br0">&#41;</span> <span class="sy0">&amp;</span> 0x3C000 <span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3FFF<span class="br0">&#41;</span><span class="sy0">;</span>	
&nbsp;
    <span class="re0">$T1</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3C0<span class="br0">&#41;</span> <span class="sy0">&lt;&lt;</span> 4<span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3C<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">&lt;&lt;</span>2 <span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check2</span> <span class="sy0">&amp;</span> 0xF0F <span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$T2</span> <span class="sy0">=</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0xFFFFC000<span class="br0">&#41;</span> <span class="sy0">&lt;&lt;</span> 4<span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check1</span> <span class="sy0">&amp;</span> 0x3C00<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">&lt;&lt;</span> 0xA<span class="br0">&#41;</span> <span class="sy0">|</span> <span class="br0">&#40;</span><span class="re0">$Check2</span> <span class="sy0">&amp;</span> 0xF0F0000 <span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">return</span> <span class="br0">&#40;</span><span class="re0">$T1</span> <span class="sy0">|</span> <span class="re0">$T2</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> CheckHash<span class="br0">&#40;</span><span class="re0">$Hashnum</span><span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span class="re0">$CheckByte</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
    <span class="re0">$Flag</span> <span class="sy0">=</span> <span class="nu0">0</span><span class="sy0">;</span>
&nbsp;
    <span class="re0">$HashStr</span> <span class="sy0">=</span> <span class="kw3">sprintf</span><span class="br0">&#40;</span><span class="st_h">'%u'</span><span class="sy0">,</span> <span class="re0">$Hashnum</span><span class="br0">&#41;</span> <span class="sy0">;</span>
    <span class="re0">$length</span> <span class="sy0">=</span> <span class="kw3">strlen</span><span class="br0">&#40;</span><span class="re0">$HashStr</span><span class="br0">&#41;</span><span class="sy0">;</span>
&nbsp;
    <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span> <span class="sy0">=</span> <span class="re0">$length</span> <span class="sy0">-</span> <span class="nu0">1</span><span class="sy0">;</span>  <span class="re0">$i</span> <span class="sy0">&gt;=</span> <span class="nu0">0</span><span class="sy0">;</span>  <span class="re0">$i</span> <span class="sy0">--</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$Re</span> <span class="sy0">=</span> <span class="re0">$HashStr</span><span class="br0">&#123;</span><span class="re0">$i</span><span class="br0">&#125;</span><span class="sy0">;</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span>1 <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$Flag</span> <span class="sy0">%</span> 2<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>              
            <span class="re0">$Re</span> <span class="sy0">+=</span> <span class="re0">$Re</span><span class="sy0">;</span>     
            <span class="re0">$Re</span> <span class="sy0">=</span> <span class="br0">&#40;</span>int<span class="br0">&#41;</span><span class="br0">&#40;</span><span class="re0">$Re</span> <span class="sy0">/</span> 10<span class="br0">&#41;</span> <span class="sy0">+</span> <span class="br0">&#40;</span><span class="re0">$Re</span> <span class="sy0">%</span> 10<span class="br0">&#41;</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
        <span class="re0">$CheckByte</span> <span class="sy0">+=</span> <span class="re0">$Re</span><span class="sy0">;</span>
        <span class="re0">$Flag</span> <span class="sy0">++;</span>	
    <span class="br0">&#125;</span>
&nbsp;
    <span class="re0">$CheckByte</span> <span class="sy0">%=</span> <span class="nu0">10</span><span class="sy0">;</span>
    <span class="kw1">if</span> <span class="br0">&#40;</span>0 <span class="sy0">!==</span> <span class="re0">$CheckByte</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
        <span class="re0">$CheckByte</span> <span class="sy0">=</span> 10 <span class="sy0">-</span> <span class="re0">$CheckByte</span><span class="sy0">;</span>
        <span class="kw1">if</span> <span class="br0">&#40;</span>1 <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$Flag</span> <span class="sy0">%</span> 2<span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span class="kw1">if</span> <span class="br0">&#40;</span>1 <span class="sy0">===</span> <span class="br0">&#40;</span><span class="re0">$CheckByte</span> <span class="sy0">%</span> 2<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
                <span class="re0">$CheckByte</span> <span class="sy0">+=</span> <span class="nu0">9</span><span class="sy0">;</span>
            <span class="br0">&#125;</span>
            <span class="re0">$CheckByte</span> <span class="sy0">&gt;&gt;=</span> <span class="nu0">1</span><span class="sy0">;</span>
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span>
&nbsp;
    <span class="kw1">return</span> <span class="st_h">'7'</span><span class="sy0">.</span><span class="re0">$CheckByte</span><span class="sy0">.</span><span class="re0">$HashStr</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> getpagerank<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$query</span><span class="sy0">=</span><span class="st0">&quot;http://toolbarqueries.google.com/tbr?client=navclient-auto&amp;ch=&quot;</span><span class="sy0">.</span>CheckHash<span class="br0">&#40;</span>HashURL<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">.</span> <span class="st0">&quot;&amp;features=Rank&amp;q=info:&quot;</span><span class="sy0">.</span><span class="re0">$url</span><span class="sy0">.</span><span class="st0">&quot;&amp;num=100&amp;filter=0&quot;</span><span class="sy0">;</span>
	<span class="re0">$data</span><span class="sy0">=</span>file_get_contents_curl<span class="br0">&#40;</span><span class="re0">$query</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="re0">$pos</span> <span class="sy0">=</span> <span class="kw3">strpos</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="sy0">,</span> <span class="st0">&quot;Rank_&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw1">if</span><span class="br0">&#40;</span><span class="re0">$pos</span> <span class="sy0">===</span> <span class="kw4">false</span><span class="br0">&#41;</span><span class="br0">&#123;</span><span class="br0">&#125;</span> <span class="kw1">else</span><span class="br0">&#123;</span>
		<span class="re0">$pagerank</span> <span class="sy0">=</span> <span class="kw3">substr</span><span class="br0">&#40;</span><span class="re0">$data</span><span class="sy0">,</span> <span class="re0">$pos</span> <span class="sy0">+</span> 9<span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//обрезаем лишнее</span>
		<span class="re0">$pagerank</span> <span class="sy0">=</span> <span class="kw3">trim</span><span class="br0">&#40;</span><span class="re0">$pagerank</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//удаляем перенос строки</span>
		<span class="kw1">return</span> <span class="re0">$pagerank</span><span class="sy0">;</span>
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> file_get_contents_curl<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	<span class="re0">$ch</span> <span class="sy0">=</span> <span class="kw3">curl_init</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw3">curl_setopt</span><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_HEADER<span class="sy0">,</span> 0<span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw3">curl_setopt</span><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> 1<span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw3">curl_setopt</span><span class="br0">&#40;</span><span class="re0">$ch</span><span class="sy0">,</span> CURLOPT_URL<span class="sy0">,</span> <span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">curl_exec</span><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw3">curl_close</span><span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span>
	<span class="kw1">return</span> <span class="re0">$data</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> xml<span class="br0">&#40;</span><span class="re0">$rank</span><span class="sy0">,</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
  <span class="re0">$DOM</span> <span class="sy0">=</span> <span class="kw2">new</span> DomDocument<span class="br0">&#40;</span><span class="st_h">'1.0'</span><span class="sy0">,</span> <span class="st_h">'windows-1251'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$root</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createElement</span><span class="br0">&#40;</span><span class="st_h">'urlinfo'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$root</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createElement</span><span class="br0">&#40;</span><span class="st_h">'url'</span><span class="sy0">,</span><span class="st_h">'/'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$root</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$child</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child_att</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createAttribute</span><span class="br0">&#40;</span><span class="st_h">'domain'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$child_att</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$att_text</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createTextNode</span><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child_att</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$att_text</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$pr</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createElement</span><span class="br0">&#40;</span><span class="st_h">'rank'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$root</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$pr</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child_att2</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createAttribute</span><span class="br0">&#40;</span><span class="st_h">'value'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$pr</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$child_att2</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$att_text2</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">createTextNode</span><span class="br0">&#40;</span><span class="re0">$rank</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$child_att2</span><span class="sy0">-&gt;</span><span class="me1">appendChild</span><span class="br0">&#40;</span><span class="re0">$att_text2</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">formatOutput</span> <span class="sy0">=</span> <span class="kw4">true</span><span class="sy0">;</span>
  <span class="re0">$pagerank</span> <span class="sy0">=</span> <span class="re0">$DOM</span><span class="sy0">-&gt;</span><span class="me1">saveXML</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="kw1">return</span> <span class="re0">$pagerank</span><span class="sy0">;</span>
<span class="br0">&#125;</span>
<span class="sy1">?&gt;</span></pre></div></div><br />
Теперь мы можем использовать функцию <strong>getPageRank($url)</strong>, которая возвращает значение PR.<br />
Например, так:<br />
<div id="wpshdo_8" class="wp-synhighlighter-outer"><div id="wpshdt_8" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_8"></a><a id="wpshat_8" class="wp-synhighlighter-title" href="#codesyntax_8"  onClick="javascript:wpsh_toggleBlock(8)" title="Нажмите, чтобы показать или скрыть блок кода">pr.php</a></td><td align="right"><a href="#codesyntax_8" onClick="javascript:wpsh_code(8)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_8" onClick="javascript:wpsh_print(8)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_8" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="kw1">include</span><span class="br0">&#40;</span><span class="st_h">'pagerank.php'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'url'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
  <span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: text/html; charset=windows-1251'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$getrank</span> <span class="sy0">=</span> getPageRank<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="kw1">echo</span> <span class="st_h">'PR:'</span><span class="sy0">,</span><span class="re0">$getrank</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div><br />
Но ведь у нас основная задача &#8211; получить PR в XML. Для этого используем функцию <strong>xml($getrank,$url)</strong>:<br />
<div id="wpshdo_9" class="wp-synhighlighter-outer"><div id="wpshdt_9" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_9"></a><a id="wpshat_9" class="wp-synhighlighter-title" href="#codesyntax_9"  onClick="javascript:wpsh_toggleBlock(9)" title="Нажмите, чтобы показать или скрыть блок кода">xml.php</a></td><td align="right"><a href="#codesyntax_9" onClick="javascript:wpsh_code(9)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_9" onClick="javascript:wpsh_print(9)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_9" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span>
<span class="kw1">include</span><span class="br0">&#40;</span><span class="st_h">'pagerank.php'</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'url'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
  <span class="kw3">header</span><span class="br0">&#40;</span><span class="st_h">'Content-Type: text/xml; charset=windows-1251'</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="re0">$url</span> <span class="sy0">=</span> <span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'url'</span><span class="br0">&#93;</span><span class="sy0">;</span>
  <span class="re0">$getrank</span> <span class="sy0">=</span> getPageRank<span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="kw1">print</span> xml<span class="br0">&#40;</span><span class="re0">$getrank</span><span class="sy0">,</span><span class="re0">$url</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div><br />
Демонстрация работы скрипта <a href="http://chiliec.ru/pr/" title="демонстрация работы скрипта" target="_blank">здесь</a>, архив с исходниками <a href="http://chiliec.ru/wp-content/uploads/pr.zip">здесь</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/06QQfwNPuZa-fEM0yhRKC4zdj98/0/da"><img src="http://feedads.g.doubleclick.net/~a/06QQfwNPuZa-fEM0yhRKC4zdj98/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/06QQfwNPuZa-fEM0yhRKC4zdj98/1/da"><img src="http://feedads.g.doubleclick.net/~a/06QQfwNPuZa-fEM0yhRKC4zdj98/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Chiliec/~4/Wu04F0_C0OY" height="1" width="1"/>]]></content:encoded><description>На написание данного поста меня сподвигла вот эта тема на форуме Seobuilding.ru. В ней ТС рассказал, как получить тИЦ в формате XML &amp;#8211; при помощи такой вот строчки: http://bar-navig.yandex.ru/u?url=http://chiliec.ru&amp;#038;show=1 и задал вопрос: можно ли так же в XML получить значение PR. Можно конечно делать это специальные сервисы, но это не надежно, да и бывают ограничения. [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chiliec.ru/php/poluchaem-tic-i-pr-v-formate-xml.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://chiliec.ru/php/poluchaem-tic-i-pr-v-formate-xml.html</feedburner:origLink></item><item><title>Виджет комментариев ВКонтакте</title><link>http://feedproxy.google.com/~r/Chiliec/~3/WOG1Si6YPCo/vidzhet-kommentariev-vkontakte.html</link><category>Разное</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Chiliec</dc:creator><pubDate>Sun, 10 Apr 2011 07:54:50 PDT</pubDate><guid isPermaLink="false">http://chiliec.ru/?p=679</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fchiliec.ru%2Fothers%2Fvidzhet-kommentariev-vkontakte.html"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fchiliec.ru%2Fothers%2Fvidzhet-kommentariev-vkontakte.html&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<h3>Введение</h3>
<p>Я достаточно долго экспериментировал над <strong>виджетом комментариев вконтакте</strong> и пришла пора поделиться с вами своими знаниями. <span id="more-679"></span>О плюсах рассказывать не буду &#8211; они и так хорошо расписаны разработчиками на <a href="http://vkontakte.ru/developers.php?o=-1&amp;p=Comments">странице подключения виджета</a>. Единственное, что некоторые из них немного утратили свою актуальность после окончательного копирования <strong>виджета комментариев фейсбука</strong>, например вирусность. Поскольку многие теперь не будут &laquo;транслировать комментарий на стену и в ленту друзей&raquo; убрав галочку, эффективность данного пункта значительно снижается. Все же остальное &#8211; привычность, отсутствие надобности регистрироваться и вводить лишние данные кроме самого комментария &#8211; действительно очень неплохо.<br />
Но не все так хорошо, как хотелось бы. Сколько слежу за этим виджетом, время от времени с ним происходят какие-то проблемы &#8211; то комментарии исчезают, то дизайн полностью изменяется (из за чего &laquo;едет&raquo; и дизайн на сайте), то callback() функция не работает&#8230; к этому еще добавить конфликты с разными браузерами и JS-фреймворками, неиндексируемость комментариев и получим полную картину. Короче говоря, над виджетом идет постоянная работа, но испытания почему-то проводят не на локальном сервере, а сразу на пользователях <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>
<h3>Кому рекомендован виджет</h3>
<p>Из-за описанных выше проблем рекомендую 10 раз подумать перед установкой и даже после этого не устанавливать данный виджет без особой необходимости. <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/laugh.gif"  alt=":-D" title=":-D"/> Это, например, HTML-сайты, которые и хотели бы предоставить возможность пользователям высказаться, но не могут это сделать другими способами. Или сайты, ориентированные исключительно на детскую и молодежную тематику &#8211; сегодня каждый подросток имеет аккаунт в контакте, чего нельзя сказать о более взрослой аудитории.</p>
<h3>Установка виджета</h3>
<p>Подробно описывать процесс установки тоже не буду, тем более что для разных CMS он может различаться, &#8211; остановлюсь лишь на самом главном. Для начала заходим на <a href="http://vkontakte.ru/developers.php?o=-1&amp;p=Comments">страницу подключения виджета</a> и выбираем &laquo;подключить новый сайт&raquo;.<br />
<strong>Название сайта</strong> &#8211; любое, это исключительно для себя.<br />
<strong>Адрес сайта</strong> &#8211; полный адрес вашего сайта с указанием протокола, например: <strong>http://chiliec.ru/</strong>.<br />
<strong>Основной домен сайта</strong> &#8211; просто домен, без лишних символов, например: <strong>chiliec.ru </strong>Здесь главное не дописать слеш «/», поскольку он дописывается сам при копировании адреса сайта.</p>
<p>Нажимаем сохранить и копируем код на сайт, в соответствие с комментариями.</p>
<h3>Коллбек-функция onChange</h3>
<p>Наконец-то можно приступить к самому интересному. Рассмотрим процесс записи комментариев и их количества в базу данных, чтобы, например, показывать наиболее комментируемые статьи или в последствие оказаться от использования виджета с минимальными потерями. Просто приведу код:<br />
<div id="wpshdo_10" class="wp-synhighlighter-outer"><div id="wpshdt_10" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_10"></a><a id="wpshat_10" class="wp-synhighlighter-title" href="#codesyntax_10"  onClick="javascript:wpsh_toggleBlock(10)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_10" onClick="javascript:wpsh_code(10)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_10" onClick="javascript:wpsh_print(10)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_10" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="sy0">&lt;</span>script type<span class="sy0">=</span><span class="st0">&quot;text/javascript&quot;</span><span class="sy0">&gt;</span>
VK<span class="sy0">.</span>Widgets<span class="sy0">.</span>Comments<span class="br0">&#40;</span><span class="st0">&quot;vk_comments&quot;</span><span class="sy0">,</span> <span class="br0">&#123;</span>limit<span class="sy0">:</span> <span class="nu0">30</span><span class="sy0">,</span> width<span class="sy0">:</span> <span class="st0">&quot;500&quot;</span><span class="sy0">,</span> autoPublish<span class="sy0">:</span> 0<span class="sy0">,</span> onChange<span class="sy0">:</span> addComment<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span>    
&nbsp;
<span class="kw2">function</span> getXmlHttp<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
  <span class="kw2">var</span> xmlhttp<span class="sy0">;</span>
  try <span class="br0">&#123;</span>
    xmlhttp <span class="sy0">=</span> <span class="kw2">new</span> ActiveXObject<span class="br0">&#40;</span><span class="st0">&quot;Msxml2.XMLHTTP&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="br0">&#125;</span> catch <span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    try <span class="br0">&#123;</span>
      xmlhttp <span class="sy0">=</span> <span class="kw2">new</span> ActiveXObject<span class="br0">&#40;</span><span class="st0">&quot;Microsoft.XMLHTTP&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span> catch <span class="br0">&#40;</span>E<span class="br0">&#41;</span> <span class="br0">&#123;</span>
      xmlhttp <span class="sy0">=</span> <span class="kw4">false</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
  <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span>xmlhttp <span class="sy0">&amp;&amp;</span> typeof XMLHttpRequest<span class="sy0">!=</span><span class="st_h">'undefined'</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    xmlhttp <span class="sy0">=</span> <span class="kw2">new</span> XMLHttpRequest<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
  <span class="br0">&#125;</span>
  <span class="kw1">return</span> xmlhttp<span class="sy0">;</span>
<span class="br0">&#125;</span>
&nbsp;
<span class="kw2">function</span> addComment<span class="br0">&#40;</span>num<span class="sy0">,</span> last_comment<span class="sy0">,</span> <span class="kw3">date</span><span class="sy0">,</span> sign<span class="br0">&#41;</span> <span class="br0">&#123;</span>
<span class="kw2">var</span> str<span class="sy0">=</span>document<span class="sy0">.</span>URL<span class="sy0">;</span>
<span class="kw2">var</span> patt<span class="sy0">=/</span>id<span class="sy0">=</span>d<span class="sy0">/</span>i
<span class="kw2">var</span> result<span class="sy0">=</span>patt<span class="sy0">.</span><span class="kw3">exec</span><span class="br0">&#40;</span>str<span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// из URL получаем id новости</span>
&nbsp;
<span class="kw2">var</span> xmlhttp <span class="sy0">=</span> getXmlHttp<span class="br0">&#40;</span><span class="br0">&#41;</span>
xmlhttp<span class="sy0">.</span>open<span class="br0">&#40;</span><span class="st_h">'GET'</span><span class="sy0">,</span> <span class="st_h">'update_comments.php?num='</span><span class="sy0">+</span>num<span class="sy0">+</span><span class="st_h">'&amp;'</span><span class="sy0">+</span>result<span class="sy0">+</span><span class="st_h">'r='</span><span class="sy0">+</span>Math<span class="sy0">.</span>random<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="kw4">true</span><span class="br0">&#41;</span><span class="sy0">;</span>
xmlhttp<span class="sy0">.</span>onreadystatechange <span class="sy0">=</span> <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <span class="kw1">if</span> <span class="br0">&#40;</span>xmlhttp<span class="sy0">.</span>readyState <span class="sy0">==</span> 4<span class="br0">&#41;</span> <span class="br0">&#123;</span>
     <span class="kw1">if</span><span class="br0">&#40;</span>xmlhttp<span class="sy0">.</span>status <span class="sy0">==</span> <span class="nu0">200</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
       <span class="co1">//alert(xmlhttp.responseText);</span>
         <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span><span class="sy0">;</span>
xmlhttp<span class="sy0">.</span>send<span class="br0">&#40;</span><span class="kw4">null</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="br0">&#125;</span>                
<span class="kw2">&lt;/script&gt;</span></pre></div></div><br />
<div id="wpshdo_11" class="wp-synhighlighter-outer"><div id="wpshdt_11" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_11"></a><a id="wpshat_11" class="wp-synhighlighter-title" href="#codesyntax_11"  onClick="javascript:wpsh_toggleBlock(11)" title="Нажмите, чтобы показать или скрыть блок кода">update_comments.php</a></td><td align="right"><a href="#codesyntax_11" onClick="javascript:wpsh_code(11)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_11" onClick="javascript:wpsh_print(11)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_11" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;"><span class="kw2">&lt;?php</span> 
<span class="kw1">require</span><span class="br0">&#40;</span><span class="st0">&quot;wp-config.php&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// сюда надо вписать путь к файлу подключение к MySQL</span>
&nbsp;
<span class="kw1">if</span> <span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="sy0">&amp;&amp;</span> <span class="kw3">isset</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'num'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp;
<span class="re0">$id</span> <span class="sy0">=</span> <span class="kw3">mysql_real_escape_string</span><span class="br0">&#40;</span><span class="kw3">htmlentities</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'id'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
<span class="re0">$num</span> <span class="sy0">=</span> <span class="kw3">mysql_real_escape_string</span><span class="br0">&#40;</span><span class="kw3">htmlentities</span><span class="br0">&#40;</span><span class="re0">$_GET</span><span class="br0">&#91;</span><span class="st_h">'num'</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
<span class="kw3">mysql_query</span><span class="br0">&#40;</span><span class="st0">&quot;UPDATE `wp_posts` SET `vk_comments`='&quot;</span><span class="sy0">.</span><span class="re0">$num</span><span class="sy0">.</span><span class="st0">&quot;' WHERE `id`='&quot;</span><span class="sy0">.</span><span class="re0">$id</span><span class="sy0">.</span><span class="st0">&quot;'&quot;</span><span class="br0">&#41;</span> or <span class="kw3">die</span><span class="br0">&#40;</span><span class="kw3">mysql_error</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span> 
&nbsp;
<span class="kw1">echo</span><span class="st0">&quot;<span class="es4">$num</span>&quot;</span><span class="sy0">;</span>
&nbsp;
<span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="kw1">echo</span><span class="st0">&quot;Ошибка!&quot;</span><span class="sy0">;</span> <span class="br0">&#125;</span>
&nbsp;
<span class="sy1">?&gt;</span></pre></div></div></p>
<p>Кроме такого способа сохранения, есть еще способ подписаться на события с помощью <a href="http://vkontakte.ru/developers.php?oid=-1&amp;p=VK.Observer">VK.Observer</a>:<br />
<div id="wpshdo_12" class="wp-synhighlighter-outer"><div id="wpshdt_12" class="wp-synhighlighter-expanded"><table border="0" width="100%"><tr><td align="left" width="80%"><a name="#codesyntax_12"></a><a id="wpshat_12" class="wp-synhighlighter-title" href="#codesyntax_12"  onClick="javascript:wpsh_toggleBlock(12)" title="Нажмите, чтобы показать или скрыть блок кода">Исходный код</a></td><td align="right"><a href="#codesyntax_12" onClick="javascript:wpsh_code(12)" title="Показать код отдельно"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/code.png" /></a>&nbsp;<a href="#codesyntax_12" onClick="javascript:wpsh_print(12)" title="Напечатать код"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/printer.png" /></a>&nbsp;<a href="http://chiliec.ru/wp-content/plugins/wp-synhighlight/About.html" target="_blank" title="Показать информацию о плагине"><img border="0" style="border: 0 none" src="http://chiliec.ru/wp-content/plugins/wp-synhighlight/themes/default/images/info.gif" /></a>&nbsp;</td></tr></table></div><div id="wpshdi_12" class="wp-synhighlighter-inner" style="display: block;"><pre class="php" style="font-family:monospace;">﻿VK<span class="sy0">.</span>Observer<span class="sy0">.</span>subscribe<span class="br0">&#40;</span><span class="st_h">'widgets.comments.new_comment'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span>num<span class="sy0">,</span> last_comment<span class="sy0">,</span> <span class="kw3">date</span><span class="sy0">,</span> sign<span class="br0">&#41;</span><span class="br0">&#123;</span>
  <span class="co1">// При добавлении нового комментария сработает эта функция </span>
  <span class="co1">// num - количество комментариев</span>
  <span class="co1">// last_comment - текст последнего комментария</span>
  <span class="co1">// date - текущая дата в формате ISO 8601 (например, 2004-02-12T15:19:21+00:00)</span>
  <span class="co1">// sign - контрольная сумма md5 от конкатенации 4х строк: api_secret, date, num, last_comment.</span>
  console<span class="sy0">.</span><span class="kw3">log</span><span class="br0">&#40;</span>num<span class="br0">&#41;</span><span class="sy0">;</span>
  console<span class="sy0">.</span><span class="kw3">log</span><span class="br0">&#40;</span>last_comment<span class="br0">&#41;</span><span class="sy0">;</span>
  console<span class="sy0">.</span><span class="kw3">log</span><span class="br0">&#40;</span><span class="kw3">date</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span><span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div><br />
Пока это всё <img src="http://chiliec.ru/wp-content/plugins/qipsmiles/smiles/smile.gif"  alt="=)" title="=)"/> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/LpesUHGO1JyZT8wnAmaCF2Wc-vg/0/da"><img src="http://feedads.g.doubleclick.net/~a/LpesUHGO1JyZT8wnAmaCF2Wc-vg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LpesUHGO1JyZT8wnAmaCF2Wc-vg/1/da"><img src="http://feedads.g.doubleclick.net/~a/LpesUHGO1JyZT8wnAmaCF2Wc-vg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/Chiliec/~4/WOG1Si6YPCo" height="1" width="1"/>]]></content:encoded><description>Введение Я достаточно долго экспериментировал над виджетом комментариев вконтакте и пришла пора поделиться с вами своими знаниями. О плюсах рассказывать не буду &amp;#8211; они и так хорошо расписаны разработчиками на странице подключения виджета. Единственное, что некоторые из них немного утратили свою актуальность после окончательного копирования виджета комментариев фейсбука, например вирусность. Поскольку многие теперь не будут [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://chiliec.ru/others/vidzhet-kommentariev-vkontakte.html/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">13</slash:comments><feedburner:origLink>http://chiliec.ru/others/vidzhet-kommentariev-vkontakte.html</feedburner:origLink></item></channel></rss>

