<?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:dc="http://purl.org/dc/elements/1.1/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://nevkontakte.org.ru">
<channel>
 <title>Antisocial programmer's blog</title>
 <link>http://nevkontakte.org.ru/blogs/aleks</link>
 <description />
 <language>ru</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/nevkontakte" /><feedburner:info uri="nevkontakte" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>nevkontakte</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fnevkontakte" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/nevkontakte" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fnevkontakte" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://lenta.yandex.ru/settings.xml?name=feed&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fnevkontakte" src="http://lenta.yandex.ru/i/addfeed.gif">?????? ? ??????.?????</feedburner:feedFlare><item>
 <title>О том, почему интернет-банк работает только в IE6.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/EuL46E9RFkQ/o-tom-pochemu-internet-bank-rabotaet-tolko-v-ie6</link>
 <description>&lt;p&gt;Много слов (в том числе нелицеприятных) было сказано о различных интернет-банках и подобных системах, отличающихся крайне кривым интерфейсом, который зачастую еще и работает только в ИЕ6. Безумное количество лучей различного содержания было послано их разработчикам и Биллу Гейтсу заодно, огромное количество нервов вымотано и, по некоторым данным, с несколькими известными дизайнерами и юзабилити-экспертами случился инфаркт.&lt;/p&gt;
&lt;p&gt;Почему все это происходит? Недавно мне представился случай увидеть это со стороны программиста. Один из моих друзей работает в компании, разрабатывающей какую-то крупную систему, помимо прочего работающую с финансами и документами. В детали я не вникал, но система здоровенная, работает над ней куча людей. Мой друг работает в этой компании Java-кодером. Сразу скажу,&amp;nbsp;что программист он толковый,&amp;nbsp;гораздо опытнее меня, но с вебдевом дела не имел  чуть менее, чем вообще. Недавно он стукнулся ко мне в аську с вопросами по html-верстке, ибо его отрядили писать веб-интерфейс к той системе.&amp;nbsp;Сами вопросы воспроизводить не вижу особого смысла, но куски кода, которые он приводил, просто выносили мозг запутанностью и &amp;quot;семантичностью&amp;quot; верстки. Часть объяснялась применением достаточно запутанного, с моей точки зрения, шаблонизатора wicket (по ощущениям - что-то вроде Smarty, только для Java). Однако были там и такие вещи, как таблица внутри &amp;lt;span&amp;gt; и аналогичные прелести. Неудивительно, что браузер от таких финтов бесился и отрисовывал все как попало.&lt;/p&gt;
&lt;p&gt;К чему я это говорю? Да к тому, что мой друг &lt;strong&gt;Java-кодер&lt;/strong&gt;, а &lt;u&gt;не&lt;/u&gt; верстальщик. И в его обязанности изначально не входила верстка. Однако кто-то решил сэкономить (опять кризис виноват?) и свалить на него и верстку тоже. Результат: все выглядит совсем не так, как хотелось бы, html-код до жути избыточен и трудночитаем. Думаю, что не погрешу против истины, если скажу, что зачастую та же ситуация возникала и при разработке других систем, интернет-банков и пр. А потом мы сидим на каком-нибудь хабре и поливаем говном разработчиков интернет-банка.&lt;/p&gt;
&lt;p&gt;PS. Кстати, когда я подключал себе интернет-банк в альфа-банке, мне в офисе сказали, что он работает только в IE. Однако я уже почти полгода спокойно пользуюсь им из-под Linux'a в Firefox. Так что еще не все потеряно &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;p&gt;PPS. Кто-то ищет &lt;a href="http://www.host-food.ru/"&gt;недорогой хостинг&lt;/a&gt;, кто-то говорит, что это миф, а между тем он таки существует &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;PPPS. Dimmu Borgir Perfection or Vanity&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/o5UciK1hBPY&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/o5UciK1hBPY&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;PPPPS. Что-то много сегодня постскриптумов получилось &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/o-tom-pochemu-internet-bank-rabotaet-tolko-v-ie6" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/o-tom-pochemu-internet-bank-rabotaet-tolko-v-ie6" dc:title="О том, почему интернет-банк работает только в IE6." trackback:ping="http://nevkontakte.org.ru/trackback/382" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/382&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/382?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/CdSJwL-W9nSi4UuawCMx8lUGpUc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CdSJwL-W9nSi4UuawCMx8lUGpUc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/CdSJwL-W9nSi4UuawCMx8lUGpUc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/CdSJwL-W9nSi4UuawCMx8lUGpUc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=EuL46E9RFkQ:V23RWTqavtI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=EuL46E9RFkQ:V23RWTqavtI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=EuL46E9RFkQ:V23RWTqavtI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=EuL46E9RFkQ:V23RWTqavtI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/EuL46E9RFkQ" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/o-tom-pochemu-internet-bank-rabotaet-tolko-v-ie6#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/zametki-i-nablyudeniya/in-vitrtual-zametki-o-zhizni-virtualnoi">In vitrtual: заметки о жизни виртуальной</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/382</wfw:commentRss>
 <pubDate>Fri, 05 Feb 2010 11:07:09 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">382 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/o-tom-pochemu-internet-bank-rabotaet-tolko-v-ie6</feedburner:origLink></item>
<item>
 <title>Coffiem lilsum dolor sit amet</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/5xMCESC4Lx4/coffiem-lilsum-dolor-sit-amet</link>
 <description>&lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec metus at arcu commodo aliquam a vitae sapien. Donec ipsum massa, pellentesque et pharetra a, commodo non turpis? Quisque ultricies pellentesque augue, at mollis arcu vestibulum ac. Integer hendrerit rhoncus lectus. Aenean mauris dui, faucibus suscipit semper nec, eleifend ac lacus. In blandit eros ut libero dignissim vulputate tempus enim lobortis? Curabitur lorem urna, gravida quis pretium ac; porttitor vitae ante. Donec tincidunt purus non libero scelerisque consectetur. Donec lobortis sapien eget tellus vulputate facilisis ut eget justo? Nunc gravida porttitor quam ac pellentesque. Donec at turpis sit amet ante lobortis mollis eget quis dolor? Pellentesque quis mi sit amet libero suscipit accumsan quis a sem. Sed bibendum risus et sapien pretium in mollis tellus posuere? Nulla mi massa, tristique sodales tincidunt quis, posuere in nulla.&lt;/p&gt;
&lt;p&gt;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec porttitor semper iaculis. Vivamus facilisis dignissim venenatis. Aliquam varius auctor vestibulum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam tempor semper felis, eget bibendum magna faucibus eget. Vestibulum malesuada odio ut nunc mattis vel viverra urna mollis. Nam sed lorem et orci convallis sollicitudin id ut nibh. Donec sed est ac lacus ullamcorper vulputate auctor a mi. Pellentesque feugiat, dolor sed tincidunt ultrices, enim felis semper tellus, non ultricies neque felis at mi. Quisque posuere tortor ac nisl molestie et volutpat lectus gravida. Phasellus eu erat in nunc consectetur lacinia eu sed erat. Integer laoreet viverra velit, non placerat dolor pellentesque ac. In eu risus nulla, ut pharetra lorem. Cras nec nisl ut urna cursus viverra nec sit amet felis. Sed id quam quis mi tincidunt lobortis suscipit luctus diam! Nulla ac leo sed felis dapibus porta quis ut ante! Proin sit amet velit nec neque facilisis adipiscing non at metus.&lt;/p&gt;
&lt;p&gt;In porttitor, nisi ac pulvinar lacinia, nisl risus rutrum elit, eu dapibus enim lorem ac justo. In ac tortor quis nunc imperdiet sagittis. Integer id risus leo. Mauris ac est enim! Etiam velit justo, vehicula in commodo nec; aliquam quis sem. Donec porttitor, tortor ac luctus ornare, eros quam adipiscing lacus, sit amet cursus dolor elit at metus! Proin sit amet ligula arcu, sed lobortis enim. Suspendisse potenti. Sed ac neque quam, non egestas turpis. Donec vel porttitor nulla. Sed aliquam rutrum iaculis. Nunc quis lacinia justo. Cras felis nibh; tempor ac luctus sed, faucibus eu est. Quisque porttitor tempus felis vel venenatis.&lt;/p&gt;
&lt;p&gt;&amp;lt;!--break--&gt;&lt;/p&gt;
&lt;p&gt;Pellentesque at tellus dui, ut mattis tellus? Donec in auctor nibh! Suspendisse dignissim commodo enim sit amet fermentum. Fusce quis magna non mauris aliquam varius. Curabitur laoreet ligula et lacus hendrerit ut dapibus velit rutrum? Aenean quam metus, tincidunt sed posuere at, posuere ut neque. А внимательным - подарок. Первым трем, кто напишет мне на &lt;img align="absMiddle" alt="" src="http://nevkontakte.org.ru/files/email.gif" /&gt; я подарю &lt;a href="http://nevkontakte.org.ru/blog/alek%24/skripty-google-cache-dumper-bing-cache-dumper"&gt;Google Cache Dumper&lt;/a&gt;. Просто ради позитива. Fusce bibendum sem sit amet ante euismod eleifend placerat elit imperdiet. Proin ornare faucibus varius. Donec non cursus eros. Aenean facilisis, massa vel consequat pharetra, nulla libero hendrerit nibh, id mollis massa diam vitae sem.&lt;/p&gt;
&lt;p&gt;Aenean fringilla dui sit amet tellus tincidunt ullamcorper ultricies urna dapibus. Vivamus id lorem augue? Morbi dolor urna, porttitor vel mattis vitae, condimentum eu nisi. Nullam dignissim sollicitudin accumsan. Duis vitae neque sed velit dictum fermentum sit amet non justo. Suspendisse non fermentum risus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed ut arcu turpis. Ut suscipit libero eros. Fusce luctus euismod ante, at ultricies sapien rhoncus ut! Sed a urna sed libero posuere varius sed id orci. Quisque vel bibendum libero. Quisque auctor volutpat libero eu laoreet.&lt;/p&gt;
&lt;p&gt;UPD. 25 февраля 2010. Внимательных на данный момент оказалось всего двое &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;PS. Hypocrisy - Solar Empire&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/-nJ0a-zdEi8&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/-nJ0a-zdEi8&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/coffiem-lilsum-dolor-sit-amet" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/coffiem-lilsum-dolor-sit-amet" dc:title="Coffiem lilsum dolor sit amet" trackback:ping="http://nevkontakte.org.ru/trackback/381" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/381&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div id="trackbacks"&gt;
&lt;div class="trackback" id="trackback-5"&gt;
&lt;h3 class="title"&gt;&lt;a href="http://sloger.net/story/coffiem-lilsum-dolor-sit-amet-ne-v-kontakte-blog-veb-programmista.html"&gt;Coffiem lilsum dolor sit amet | Не в контакте - блог веб-програм&lt;/a&gt;&lt;/h3&gt;
&lt;span class="submitted"&gt;from &lt;em&gt;Социальная сеть для блоггеров sloger.net&lt;/em&gt; on ср, 20/01/2010 - 22:03&lt;/span&gt;
&lt;div class="content"&gt; &lt;p&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis nec metus at arcu commodo aliquam a vitae sapien. Donec ipsum massa, pellentesque et pharetra a, commodo non turpis? Quisque ultricies pellentesque augue, at mollis arcu vestibulum ac. Integ...&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/381?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QIDH-CuSHDpaxLCEDq1GGPdsXlI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QIDH-CuSHDpaxLCEDq1GGPdsXlI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QIDH-CuSHDpaxLCEDq1GGPdsXlI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QIDH-CuSHDpaxLCEDq1GGPdsXlI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=5xMCESC4Lx4:SxU7RXuDB9w:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=5xMCESC4Lx4:SxU7RXuDB9w:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=5xMCESC4Lx4:SxU7RXuDB9w:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=5xMCESC4Lx4:SxU7RXuDB9w:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/5xMCESC4Lx4" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/coffiem-lilsum-dolor-sit-amet#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/zametki-i-nablyudeniya/in-vitrtual-zametki-o-zhizni-virtualnoi">In vitrtual: заметки о жизни виртуальной</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/381</wfw:commentRss>
 <pubDate>Wed, 20 Jan 2010 14:55:55 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">381 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/coffiem-lilsum-dolor-sit-amet</feedburner:origLink></item>
<item>
 <title>Заметки на манжетах #2</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/CglNJwGBL4M/zametki-na-manzhetakh-2</link>
 <description>&lt;ul&gt;
&lt;li&gt;Как обычно на сессии, в голове есть масса хороших идей,&amp;nbsp;но из-за необходимости готовиться к экзаменам совсем нет времени на реализацию. Пора составлять список дел, которые надо будет переделать за неделю каникул после нее.&lt;/li&gt;
&lt;li&gt;Меня ужасает монструозность Wordpress. Если версии 2.9 в стандартной конфигурации не всегда хватает 32 мб памяти, то подумать только, сколько оно жрет с приличным набором плагинов. И, честно говоря, я абсолютно не понимаю, какие такие фитчи в нем есть,&amp;nbsp;что они требуют столько памяти. Далеко не всякий &lt;a href="http://www.host-food.ru/"&gt;PHP хостинг&lt;/a&gt; позволяет такое безобразие у себя запускать и я с ними согласен. Вы все еще хотите &lt;a href="http://seotalk.by/wordpress"&gt;скачать wordpress&lt;/a&gt;?&lt;br /&gt;
    Если вспомнить историю, то увидим,&amp;nbsp; что пару лет назад нормой было 8 мб памяти на поток. Потом вышел WP 2.4 (если не вру) и phpBB3. Нормой стало 16 мб. Потом вышел WP 2.8 и народ стал кидаться дерьмом в тех хостеров, у кого был лимит ниже 32 мб. С WP 2.9 придется, видимо,&amp;nbsp;всем поднимать лимит еще до 48. Более того, очевидно, что чем дальше, тем быстрее растет потребление памяти в WP, но значимых фитч не добавляется. &lt;br /&gt;
    Ей, разработчики, вы совсем офигели? Ну не пишите же говно, побойтесь бога! Для БЛОГА не нужно 48 мб памяти!&lt;br /&gt;
    Боюсь себе представить WP 3.0...&lt;/li&gt;
&lt;li&gt;&lt;a href="http://homelerss.ru/post/friend-feed-burner-haos.html"&gt;Бездомный Бродяга&lt;/a&gt; предлагает устроить флешмоб по накрутке фидбернера френдфидом, чтобы дискредитировать последний. Будет весело. Присоединяйтесь!&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;Челябинские&lt;/strike&gt; Липетские автобусе настолько суровы, что &lt;a href="http://habrahabr.ru/blogs/infosecurity/80842/"&gt;посылают пассажиров на хуй&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UPD. &lt;/strong&gt;Обнаружил, что на антикапче случился апдейт системы и автоматическая &lt;a href="http://nevkontakte.org.ru/anticaptcha-invite"&gt;выдача инвайтов&lt;/a&gt; сломалась. Починил.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Удачной пятницы!&lt;/p&gt;
&lt;h3&gt;PS. Pain Confessor - Butterfly&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/gsClzD9dgGI&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed width="425" height="344" src="http://www.youtube.com/v/gsClzD9dgGI&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/zametki-na-manzhetakh-2" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/zametki-na-manzhetakh-2" dc:title="Заметки на манжетах #2" trackback:ping="http://nevkontakte.org.ru/trackback/380" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/380&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/380?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ahPu1UsT0jWPGOmQQA8JZOhL2j0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ahPu1UsT0jWPGOmQQA8JZOhL2j0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ahPu1UsT0jWPGOmQQA8JZOhL2j0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ahPu1UsT0jWPGOmQQA8JZOhL2j0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=CglNJwGBL4M:CH7t1KTYuj4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=CglNJwGBL4M:CH7t1KTYuj4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=CglNJwGBL4M:CH7t1KTYuj4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=CglNJwGBL4M:CH7t1KTYuj4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/CglNJwGBL4M" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/zametki-na-manzhetakh-2#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/zametki-i-nablyudeniya/in-vitrtual-zametki-o-zhizni-virtualnoi">In vitrtual: заметки о жизни виртуальной</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/380</wfw:commentRss>
 <pubDate>Fri, 15 Jan 2010 11:56:27 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">380 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/zametki-na-manzhetakh-2</feedburner:origLink></item>
<item>
 <title>Пишем простой авторегистратор. Часть 6 - пишем для RegSubmitter.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/v7eVhXfsKRI/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter</link>
 <description>&lt;h3&gt;Содержание&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-1-instrumentarii"&gt;Инструментарий&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-2-osnovy"&gt;Основы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-3-boremsya-s-kapchei"&gt;Боремся с капчей&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu"&gt;Подключаем антикапчу&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email"&gt;Подтверждение по email&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter"&gt;&lt;strong&gt;Пишем модуль для RegSubmitter&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В этой заключительной статье я покажу, как можно легко и аккуратно реализовать материал, изложенный в предыдущих статьях, при помощи &lt;a href="http://regsubmitter.ru"&gt;RegSubmitter&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Введение в предмет.&lt;/h3&gt;
&lt;p&gt;RegSubmitter изначально задумывался мною как гибкий фреймворк для быстрого написания авторегистраторов. Поэтому в отличие от предыдущих разов, вам не надо будет задумываться обо всякой рутине вроде считывания данных из файла/запроса, заморачиваться с одновременной регистрацией нескольких аккаунтов и т.д. Вы напишете логику, а RegSubmitter сделает все остальное.&lt;/p&gt;
&lt;p&gt;Сразу скажу, что в этой статье я буду пользоваться версией RegSubmitter 1.4.0, которая пока официально не зарелизена, но уже скоро будет &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt; Впрочем, все нижеизложенное будет работать и в 1.3.6, за исключением подтверждения по email.&lt;/p&gt;
&lt;h3&gt;Структура модуля&lt;/h3&gt;
&lt;p&gt;Прежде всего, отмечу, что в RS есть два типа модулей: простые и &amp;quot;универсальные&amp;quot;. Простые работают только с одним конкретным сервисом, и &amp;quot;универсальные&amp;quot; могут работать со многими сайтами на одинаковых движках. В рамках этой статьи мы каснемся только простых модулей и будем рассматривать все на примере &lt;a href="http://memori.ru"&gt;memori.ru&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Модули в RegSubmitter разбиваются по категориям, и располагаются в папке &lt;span style="font-family: Courier New;"&gt;modules/Category_Name/Module_ID/module_ID.php&lt;/span&gt;. Здесь &lt;span style="font-family: Courier New;"&gt;module_ID&lt;/span&gt; - это буквенно-цифровой идентификатор модуля, который должен быть уникален для каждого модуля (впрочем, это не означает, что он должен быть нечитаем &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt; ). Например, модуль, работающий с сервисом Memori.ru находится по адресу &lt;span style="font-family: Courier New;"&gt;/modules/Rus/Memori/Memori.php&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;В этом файле должен находиться класс с именем, совпадающим с Module_ID, и при этом унаследованным от класса Module.&lt;/p&gt;
&lt;h3&gt;Код модуля&lt;/h3&gt;
&lt;p&gt;Ниже я приведу полный код модуля с комментариями, но перед этим сделаю несколько заметок.&lt;/p&gt;
&lt;p&gt;Первая состоит в том, что в начале класса идут параметры, задающие свойства модуля и то, как он будет обрабатываться RegSubmitter-ом. Во-вторых, я не буду отдельно описывать API RegSubmitter'a, но по ходу дела буду пояснять назначение тех или иных функций и их параметров.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre style="font-size: 0.8em;"&gt;&lt;b&gt;&amp;lt;?php&lt;/b&gt;
&lt;b&gt;class&lt;/b&gt; Memori &lt;b&gt;extends&lt;/b&gt; Module
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Параметры модуля&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$name&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'Memori'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Имя сервиса, отображаемое пользователю&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$id&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'Memori'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Все тот же Module_ID&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$url&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'http://memori.ru/'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// URL сервиса. Настоятельно рекомендую указывать правильный :-)&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$icon&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'memori.png'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Имя иконки. Должна лежать в одной папке с файлом модуля.&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$notice&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Дополнительная информация, которую мы желаем сообщить пользователям&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email_confirm&lt;/span&gt; = &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Требуется ли подтверждение по email&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$core_version&lt;/span&gt; = &lt;span style="color: rgb(192, 144, 0);"&gt;3&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Версия ядра, на которую рассчитан модуль, необходимо для проверки совместимости. Нынешняя, как не трудно догадаться - 3&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;var&lt;/b&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$encoding&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'cp1251'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Кодировка сайта.&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;/**&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Функция, ответственная за загрузку капчи.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Если ввод капчи не требуется, возвращает null. В противном случае возвращает массив данных, &lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * которые понадобятся при отправке формы, в т. ч. имя временного файла с кукисами, различные токены и т. п.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Обязательно в массиве должен быть элемент image_file, чтобы RegSubmitter мог отобразить капчу пользователю для ввода.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 */&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;function&lt;/b&gt; GetForm&lt;span style="color: rgb(104, 192, 160);"&gt;()&lt;/span&gt;
	{
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Запрашиваем страницу регистрации.&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$page&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;Get&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'http://memori.ru/registration/'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Извлекаем токен&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;token&amp;quot; value=&amp;quot;([0-9a-z]+)&amp;quot; /&amp;gt;#is'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$page&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Ноу-хау: допываем картинку из рекапчи&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$js&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;Get&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'http://api.recaptcha.net/challenge?k=6LfV6wgAAAAAAF327mU7j7lzG6s-p1SolxPA2Wx2'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;#challenge : '([^']+)'#&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$js&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Собственно скачиваем картинку&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$image&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;Get&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://api.recaptcha.net/image?c=&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$key[1]&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Генерируем имена временных файлов для хранения кукисов и картинки. Параметр - префикс имени файла.&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$cookies_file&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;TempFile&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'cookie'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$image_file&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;TempFile&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'image'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		
		&lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;SaveCookies&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$cookies_file&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Сохраняем кукисы&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;file_put_contents&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$image_file&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$image&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Сохраняем картинку&lt;/i&gt;&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Возвращаем данные, которые нам понадобятся потом.&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'image_file'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$image_file&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Картинку капчи. ОБЯЗАТЕЛЬНО!&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'cookies_file'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$cookies_file&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Файл с кукисами&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'key'&lt;/span&gt;			=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Токен формы, добытый в начале&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'recaptcha'&lt;/span&gt;		=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Токен рекапчи&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	}
	
	&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;/**&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Эта функция занимается собственно произведением регистрации.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Параметры:&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * - $account массив из элеменитов login, password, email. Назначение, думаю, очевидно :)&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * - $data тот самый массив, который мы вернули из функции GetForm()&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * - $captcha текст, написанный по мнению пользователя на капче.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Функция возвращает null в случае успеха или массив сообщений об ошибках, если они возникли.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 */&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;function&lt;/b&gt; SubmitReg&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
	{
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Собираем запрос&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$post_data&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'login'&lt;/span&gt;			=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'login'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Логин&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'email'&lt;/span&gt;			=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'email'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Емейл&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'password'&lt;/span&gt;		=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'password'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Пароль&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'password_confirm'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'password'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// И снова пароль&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'recaptcha_response_field'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Текст с картинки&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'recaptcha_challenge_field'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'recaptcha'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Токен рекапчи&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'token'&lt;/span&gt;			=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'key'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Токен формы&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(191, 3, 3);"&gt;'inviter'&lt;/span&gt;		=&amp;gt; &lt;span style="color: rgb(191, 3, 3);"&gt;''&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Просто пустое поле. Видимо, для какой-то реферральной системы&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Загружаем сохраненные кукисы с прошлого раза&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;LoadCookies&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'cookies_file'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;]);&lt;/span&gt;
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Отправляем запрос. Первый параметр - куда, второй - параметры запроса, &lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// третий (опциональный, по умолчанию - false) - надо ли преобразовывать страницу из кодировки сайта в родную для RS (utf-8)&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Очевидно, что для веб-страниц его надо ставить true, а дял картинок - false. Аналогичный параметр есть и у метода $this-&amp;gt;Get()&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$html_data&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;Post&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://memori.ru/register/&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$post_data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Проверяем успешность регистрации&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$html_data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'На указанный Вами электронный адрес'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
		{
			&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;null&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		}
		&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
		{
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Если не прошло, добываем ошибки.&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match_all&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#&amp;lt;p class=&amp;quot;error&amp;quot;&amp;gt;([^&amp;lt;]+)&amp;lt;/p&amp;gt;#mu'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$html_data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
			&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;];&lt;/span&gt;
		}
	}
	
	&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;/**&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Функция подтверждения по почте.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * Параметр $account содержит те же данные о логине, пароле и email-e, что и в случае с методом SubmitReg.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 * возвращает null в случае успеха или массив с сообщениями об ошибках в ином случае.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;i&gt;	 */&lt;/i&gt;&lt;/span&gt;
	&lt;b&gt;function&lt;/b&gt; Confirm&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$account&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
	{
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Ищем письмо по отправителю. Кроме того, в теле письма должен упоминаться домен из поля $this-&amp;gt;url&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$mail&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;findMail&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'no-reply@memori.ru'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;

		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Загружаем тело сообщения&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$text&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;getMailBody&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$mail&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'msg_id'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;]);&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Извлекаем ссылку подгверждения&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#http://memori.ru/regconfirm/[0-9]+/[0-9a-z]+/#i'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$text&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;

		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Отправляем запрос&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(85, 85, 255);"&gt;$html_data&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$this&lt;/span&gt;-&amp;gt;Get&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$url&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;

		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Проверяем успешность&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$html_data&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'/logout/'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
		{
			&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;null&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		}
		&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
		{
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Если что не так - ругаемся.&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'Произошла ошибка активации или аккаунт уже был ранее подтвержден'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
		}
	}
}
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Alles :-)&lt;/i&gt;&lt;/span&gt;
&lt;b&gt;?&amp;gt;&lt;/b&gt;&lt;/pre&gt;&lt;p&gt;Напоследок замечу, что в RS имеется очень удобная для отладки функция &lt;span style="font-family: Courier New;"&gt;dbg($var)&lt;/span&gt;. Будучи вызванная в любом месте кода она выведет дамп переменной var внизу страницы. Она особенно хороша тем, что работает в том числе и тогда, когда скрипт вызывается через AJAX.&lt;/p&gt;
&lt;p&gt;Во вложении к посту полный архив модуля Memori. И, кстати, на этот раз в нем нет никаких ошибок &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h4&gt;Короткой строкой.&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;В процессе поиска хостинга для нового своего проекта нашел один &lt;a href="http://www.host-food.ru/"&gt;недорогой хостинг&lt;/a&gt;. Между прочим, они являются спонсорами такого крупного ресурса, как phpbbguru.net, что есть хороший показатель.&lt;/li&gt;
&lt;li&gt;Сегодня беседовал с хорошим товарищем на тему телефонов и брендов. Он утверждал, что яблочные телефоны - рабство Стива Джобса, хоть с джейлбрейком, хоть без него. И говорил что у нормальных производителей вроде нокии и тупых ограничений нет, и &lt;a href="http://mobilnik.by/revrub/show/Nokia"&gt;отзывы о nokia&lt;/a&gt; хорошие, не то что у яблофона, который с очередным обновлением прошивки грозит превратиться в кирпич. После долгих споров пришли к выводу, что пиво хорошее, но его мало. Вот так &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Dimmu Borgir - The Sacrilegious Scorn&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/F9cqKafnUrk&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/F9cqKafnUrk&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter" dc:title="Пишем простой авторегистратор. Часть 6 - пишем для RegSubmitter." trackback:ping="http://nevkontakte.org.ru/trackback/379" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/379&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/379?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Прикрепленный файл&lt;/th&gt;&lt;th&gt;Размер&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://nevkontakte.org.ru/files/Memori.zip"&gt;Memori.zip&lt;/a&gt;&lt;/td&gt;&lt;td&gt;3.34 кб &lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/jQwBKR5WuRaqeFvhGqrppzflNX4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jQwBKR5WuRaqeFvhGqrppzflNX4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/jQwBKR5WuRaqeFvhGqrppzflNX4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/jQwBKR5WuRaqeFvhGqrppzflNX4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=v7eVhXfsKRI:JtF-KzlwtEQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=v7eVhXfsKRI:JtF-KzlwtEQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=v7eVhXfsKRI:JtF-KzlwtEQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=v7eVhXfsKRI:JtF-KzlwtEQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/v7eVhXfsKRI" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/kreativ-bolee-menee-zakonchennye-stati">Креатив: более-менее законченные статьи</category>
 <enclosure url="http://nevkontakte.org.ru/files/Memori.zip" length="3418" type="application/zip" />
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/379</wfw:commentRss>
 <pubDate>Mon, 11 Jan 2010 15:38:32 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">379 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter</feedburner:origLink></item>
<item>
 <title>Свободная цена на RegSubmitter: итоги</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/o9kzd5GZVNc/svobodnaya-tsena-na-regsubmitter-itogi</link>
 <description>&lt;p&gt;С 26 декабря по 1 января я раздавал новогодние подарки - все желающие имели возможность приобрести одну из версий &lt;a href="http://nevkontakte.org.ru/blog/alek%24/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga"&gt;RegSubmitter по свободной цене&lt;/a&gt;. Только что я ответил на последние письма и начинаю подводить итоги.&lt;/p&gt;
&lt;p&gt;Для начала немного чисел:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Общая выручка: 18,39 (WMZ) + 458,1 (WMR) + 549,50 (руб, ЯД) &amp;asymp; &lt;u&gt;1552.98 (руб)&lt;/u&gt; &amp;asymp; &lt;u&gt;$51.4231&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;Минимальная сумма: &lt;u&gt;1 коп&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;Максимальная сумма: &lt;u&gt;350 руб&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;Самая популярная сумма: $1.&lt;/li&gt;
&lt;li&gt;Переводов &amp;le;$1 было 15 штук &amp;mdash; примерно 60%.&lt;/li&gt;
&lt;li&gt;Популярность версий: &lt;strong&gt;RSB&lt;/strong&gt; - &lt;u&gt;15 шт&lt;/u&gt;, ESB - &lt;u&gt;8 шт&lt;/u&gt;, UMSB - &lt;u&gt;1 шт&lt;/u&gt;.&lt;/li&gt;
&lt;li&gt;Свой ключ уже активировали &lt;u&gt;16&lt;/u&gt; пользователей из &lt;u&gt;24&lt;/u&gt; поучаствовавших в акции.&lt;/li&gt;
&lt;li&gt;Лишь &lt;u&gt;трое&lt;/u&gt; запросили доступ в скрытый раздел форума поддержки.&lt;/li&gt;
&lt;li&gt;В период акции посещаемость сайта regsubmitter.ru выросла &lt;u&gt;более, чем в 4 раза&lt;/u&gt;. При этом, основной вклад был у &lt;u&gt;серча&lt;/u&gt;, за ним с небольшим отрывом шел &lt;u&gt;маулнет&lt;/u&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Теперь я поделюсь некоторыми общими соображениями о свободной цене и рунете. Главное соображение таково: в целом рунет еще морально не готов. Однако, возможны варианты, в которых этот подход применим. Необходимым для условием является яркий бренд, под которым продается товар. Пользователи должны любить этот бренд, и тогда они будут платить.&lt;/p&gt;
&lt;p&gt;Другими важными на мой взгляд аспектами являются с одной стороны достаточно широкая целевая аудитория и с другой - высокий уровень культуры в ней. То есть, вряд ли получится успешно продавать по свободной цене артефакты для WoW, но вполне можно попробовать продавать классическую музыку (насколько мне известно, первопроходцами свободной цены стали именно музыканты в лице группы Radiohead).&lt;/p&gt;
&lt;p&gt;Другое соображение, которое у меня возникло в ходе проведения акции и аналогичными экспериментами Тормоза, это &amp;quot;эффект личного общения&amp;quot;. В случае, если процесс автоматизирован, как это было сделано, например, с &amp;mu;Todo, то у покапателя возникает ощущение анонимности и ему гораздо легче заплатить мало, чем в случае личного общения по email,&amp;nbsp; как было сделано с Regsubmitter-ом. Хотя находятся личности, на которых это не распространяется &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt; Иными словами, если человек платит роботу, он не чувствует себя обязанным платить по совести (ведь у робота нет совести, он не оценит). А вот когда человек платит человеку, то тогда включается совесть и требует заплатить справедливую цену.&lt;/p&gt;
&lt;p&gt;Ну и на десерт скажу, что помимо меня аналогичную акцию проводили &lt;a href="http://brokenbrake.biz/2010/01/01/2009-2010-fin"&gt;Тормоз&lt;/a&gt; и &lt;a href="http://makeprosoft.ru/2010/itogi-akcii-svobodnaya-cena/"&gt;Abiron&lt;/a&gt;, на отчеты которых вы можете взглянуть по этим ссылкам.&lt;/p&gt;
&lt;h3&gt;PS. Paul Stanley - Live to Win!&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param name="movie" value="http://www.youtube.com/v/JOfOjXywdbo&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowscriptaccess" value="always" /&gt;&lt;embed width="425" height="344" src="http://www.youtube.com/v/JOfOjXywdbo&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/svobodnaya-tsena-na-regsubmitter-itogi" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/svobodnaya-tsena-na-regsubmitter-itogi" dc:title="Свободная цена на RegSubmitter: итоги" trackback:ping="http://nevkontakte.org.ru/trackback/378" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/378&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/378?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RBGlBewp9f2BVEwh0C9ZNdg695Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RBGlBewp9f2BVEwh0C9ZNdg695Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RBGlBewp9f2BVEwh0C9ZNdg695Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RBGlBewp9f2BVEwh0C9ZNdg695Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=o9kzd5GZVNc:KRLZG0Lkw1U:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=o9kzd5GZVNc:KRLZG0Lkw1U:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=o9kzd5GZVNc:KRLZG0Lkw1U:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=o9kzd5GZVNc:KRLZG0Lkw1U:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/o9kzd5GZVNc" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/svobodnaya-tsena-na-regsubmitter-itogi#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/zametki-i-nablyudeniya/in-vitrtual-zametki-o-zhizni-virtualnoi">In vitrtual: заметки о жизни виртуальной</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/378</wfw:commentRss>
 <pubDate>Sat, 02 Jan 2010 11:53:22 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">378 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/svobodnaya-tsena-na-regsubmitter-itogi</feedburner:origLink></item>
<item>
 <title>Итоги-2009 и Планы-2010</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/xvNgXZfj-p0/itogi-2009-i-plany-2010</link>
 <description>&lt;p&gt;10 часов до конца года. Работать лень, да и времени до начала празднования осталось не так уж много, чтобы что-то начинать. Поэтому попытаюсь подвести итоги года.&lt;/p&gt;
&lt;p&gt;Год был очень противоречивым. С одной стороны, это был очень тяжелый год, с другой - было сделано немало добрых и полезных дел. Но для начала &lt;a href="http://nevkontakte.org.ru/blog/alek%24/god-konchilsya-da-zdravstvuet-novyi-god-itogi-2008-goda"&gt;вернемся в прошлое&lt;/a&gt; и взглянем на планы:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Успешно сдать две сессии и быть готовым к третьей.&lt;/strong&gt; Цель более-менее достигнута. Более-менее - это потому что я таки схлопотал одну тройку и в этом семестре жил без стипендии.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Собрать свою группу и выйти на сцену.&lt;/strong&gt; Нихрена не достигнута. Нет времени, нет сил, нет людей.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Захватить мировое господство.&lt;/strong&gt; Опять фейл. Всему виной моя лень и добродушие.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Узнать то, чего не узнал за этот год.&lt;/strong&gt; О, да. Много узнал. Порою кажется, что даже слишком много. Но в будущем все равно наверное пригодится.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Написать много-много интересных статей в этот блог.&lt;/strong&gt; Тут уже судить вам. После НГ завершу серию про &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-1-instrumentarii"&gt;авторегистраторы&lt;/a&gt;, после чего буду придумывать еще чего-нибудь &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Придумать и реализовать еще больше идей,&amp;nbsp;чем в этом году.&lt;/strong&gt; По первому пункту план перевыполнен. По второму - не ахти, хотя есть и немало результатов. Большую часть из них я собрал &lt;a href="http://nevkontakte.org.ru/soft"&gt;здесь&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;?????? &lt;/strong&gt;!!!!!!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PROFIT&lt;/strong&gt; Миллионов не заработал. Но это еще впереди &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Резюмируя, в отношении поставленных целей год был не очень успешным, но с этим уже ничего не поделаешь. Зато есть шанс поправить ситуацию в будущем году &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;Что же&amp;nbsp;я успел за год?&lt;/h3&gt;
&lt;p&gt;Больше всего времени и сил у меня отняла учеба и тут результаты вполне пристойные. Надеюсь на этой сессии вернуть стипендию, ибо лишней не бывает. Да и не люблю я быть троечником. Кстати, наконец-то начались более-менее серьезные профильные курсы, жить уже не так скучно. Дальше будет еще веселее.&lt;/p&gt;
&lt;p&gt;Летом я в третий раз съездил в ЛШЮП. Снова масса позитива и полуночных сидений за отладкой наколбашенного детьми кода (писали, кстати, не абы что, а распознавалку текста. Вышло не бог весть что, но все ре работоспособное). Опять же, один из самых счастливых периодов жизни в этом году.&lt;/p&gt;
&lt;p&gt;В Вебе ситуация существенно не изменилась главным образом потому, что ему я на самом деле уделял недостаточно внимания, чтобы получить хороший прогресс. Я потихоньку развивал &lt;a href="http://regsubmitter.ru"&gt;RegSubmitter&lt;/a&gt;, реализовывал &lt;a href="http://zabora.net.ru"&gt;мелкие забавные идеи&lt;/a&gt;, много фрилансил. Последний, как и в прошлый раз, составил основную долю дохода.&lt;/p&gt;
&lt;p&gt;Более-менее четко самоопределился именно как программист, а не какой-нибудь сеошник-бомж-манимейкер. Писать код гораздо приятнее, чем ругаться с Платонами. Кроме того, окончательно решил, что стоит идти от фриланса в сторону развития и продажи собственных продуктов и сервисов. Это даст большую стабильность и свободу в деньгах, и значительно менее хлопотно.&lt;/p&gt;
&lt;h3&gt;Что будет в Новом году?&lt;/h3&gt;
&lt;p&gt;На этот раз у меня цели гораздо более конкретные и прагматичные.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;u&gt;Учеба.&lt;/u&gt; На мой взгляд, самая важная инвестиция в будущее и поэтому она снова не первом месте.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Выйти на месячный доход не менее 20 000 руб./мес.&lt;/u&gt; Примерно такая сумма мне необходима для более-менее свободного маневра и удовлетворения бытовых потребностей.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Написать и запустить два сервиса, которые я вынашиваю в уме уже больше месяца.&lt;/u&gt; Один из них будет бесплатный и немонетизируемый - на правах хобби. Второй скорее всего платный, но дешевый и полезный в том числе и мне. Думаю, свою долю в достижение пункта №2 он внесет.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Довести до совершенства движок RegSubmitter&lt;/u&gt; и подтянуть на нужный уровень модули. На самом деле, до этого не так уж и далеко, но хлопотно. После этого выпустить набор для реги на фрихостах.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Выпустить еще несколько полезных софтин для вебмастеров-манимейкеров. &lt;/u&gt;Зарисовки на эту тему опять же уже имеются, надо лишь довести до ума.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;Купить синтезатор.&lt;/u&gt; Идея-фикс. Хочу, и все тут. И музыку на нем писать проще, чем на гитаре.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Все это вполне реально при условии некоторого напряжения сил, так что через год я получу возможность посмотреть, насколько я на самом деле распиздяй &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h1&gt;С Новым Годом!&lt;/h1&gt;
&lt;p&gt;И идите уже праздновать, нефиг пялиться в монитор &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;PS. We wish you a METAL Xmas.&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/p54CMth4Jpg&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/p54CMth4Jpg&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/itogi-2009-i-plany-2010" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/itogi-2009-i-plany-2010" dc:title="Итоги-2009 и Планы-2010" trackback:ping="http://nevkontakte.org.ru/trackback/377" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/377&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/377?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IEdL3Fo44fyz-SA_fmp9Qr_Oeig/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IEdL3Fo44fyz-SA_fmp9Qr_Oeig/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IEdL3Fo44fyz-SA_fmp9Qr_Oeig/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IEdL3Fo44fyz-SA_fmp9Qr_Oeig/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=xvNgXZfj-p0:hfg18ULgyjg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=xvNgXZfj-p0:hfg18ULgyjg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=xvNgXZfj-p0:hfg18ULgyjg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=xvNgXZfj-p0:hfg18ULgyjg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/xvNgXZfj-p0" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/itogi-2009-i-plany-2010#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/etot-bolg-informatsiya-novosti">Этот блог: информация, новости</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/377</wfw:commentRss>
 <pubDate>Thu, 31 Dec 2009 08:38:56 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">377 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/itogi-2009-i-plany-2010</feedburner:origLink></item>
<item>
 <title>RegSubmitter по свободной цене и обновления блога.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/Uwu4raE2wFg/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga</link>
 <description>&lt;p&gt;Зачетная сессия позади, на носу новый год и хочется делать подарки &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;p&gt;Поэтому я объявляю о новогодней акции &lt;strong&gt;RegSubmitter по свободной цене&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Что такое свободная цена? Это когда покупатель платит продавцу ровно столько, сколько ему велит совесть. Это утопия денежных отношений, которая, на мой взгляд, непременно придет к людям, но далеко не при нашей жизни - сейчас люди слишком глупые и жадные, чтобы такая модель жила и была взаимовыгодна. Тем не менее, под Новый Год случаются и не такие чудеса, поэтому я &lt;a href="http://brokenbrake.biz/2009/12/24/freeprice-2009"&gt;вслед за Тормозом&lt;/a&gt; объявляю, что &lt;a href="http://regsubmitter.ru/index.php?mode=buy"&gt;RegSubmitter&lt;/a&gt; до 1 января 2010 года &lt;strong&gt;будет продаваться по свободной цене&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;Как это будет работать? А вот так:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Переведите нужную сумму на кошелек WebMoney &lt;u&gt;Z177534671497&lt;/u&gt;, указав в примечании ваш email&lt;/li&gt;
&lt;li&gt;Напишите мне на&amp;nbsp;&lt;img align="absMiddle" alt="" src="http://nevkontakte.org.ru/files/email.gif" /&gt; с того же адреса, который вы указали в примечании к платежу, какую именно версию RegSubmitter вы хотите получить&lt;/li&gt;
&lt;li&gt;В течение суток (а скорее всего гораздо быстрее) вы получите ответ, в котором будет указан ваш серийный номер и дальнейшие инструкции&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;С наступающим Новым Годом &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;Изменения в блоге&lt;/h3&gt;
&lt;p&gt;Я тут неожиданно вспомнил, что, будучи программистом, написал немало полезных программ, которые тем не менее канули в глубинах этого блога и про них никто не знает. Пришлось срочно поправлять ситуацию и создавать &lt;a href="http://nevkontakte.org.ru/soft"&gt;отдельную страничку&lt;/a&gt;, на которой перечислен весь софт, как платный, так и бесплатный (причем бесплатных оказалось даже больше, чем платных &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt; ), а так же сервисов, в разное время созданных мною. Так что приглашаю ознакомиться и найти что-нибудь полезное для себя &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;PS. Sirenia - Seven Sirens And A Silver Tear&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/EGIrE190z3I&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/EGIrE190z3I&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga" dc:title="RegSubmitter по свободной цене и обновления блога." trackback:ping="http://nevkontakte.org.ru/trackback/376" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/376&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/376?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hAeiqztqo8ILVGXLBR8-h1mBijs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAeiqztqo8ILVGXLBR8-h1mBijs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hAeiqztqo8ILVGXLBR8-h1mBijs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hAeiqztqo8ILVGXLBR8-h1mBijs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=Uwu4raE2wFg:jgGKxrvg6_o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=Uwu4raE2wFg:jgGKxrvg6_o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=Uwu4raE2wFg:jgGKxrvg6_o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=Uwu4raE2wFg:jgGKxrvg6_o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/Uwu4raE2wFg" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/etot-bolg-informatsiya-novosti">Этот блог: информация, новости</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/376</wfw:commentRss>
 <pubDate>Sat, 26 Dec 2009 15:06:27 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">376 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/regsubmitter-po-svobodnoi-tsene-i-obnovleniya-bloga</feedburner:origLink></item>
<item>
 <title>Как заставить саппорт говорить.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/faVYFl5aVGE/kak-zastavit-sapport-govorit</link>
 <description>&lt;p&gt;Думаю, всем приходилось сталкиваться, когда саппорт отмалчивается в тикетах, аське и почте. Мне вот тоже пришлось. Некрасивая была история, шума было много и меня она тоже задела, хоть и слегка. В общем, саппорт сначала мазался, а потом и вовсе ушел в инвиз и замолк. Типа все, оффлайн навеки.&lt;/p&gt;
&lt;p&gt;Вчера вечером, однако мне было относительно нечего делать и я решил предпринять еще одну попытку:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(20:54:08) Alek$: Добрый день.&lt;br /&gt;
(20:54:14) Alek$: У меня есть к вам предложение.&lt;br /&gt;
(20:54:50) support: Добрый день. Слушаю.&lt;br /&gt;
(20:55:12) Alek$: Вы мне наконец сообщите как дела с доменами. Такое вот предложение.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;...и случилось чудо! Несмотря на инвиз и неурочное время, мне ответ пришел немедля! Это при том, что раньше как вежливые, так и резкие просьбы наглухо игнорировались. Берите на заметку, коллеги &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/kak-zastavit-sapport-govorit" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/kak-zastavit-sapport-govorit" dc:title="Как заставить саппорт говорить." trackback:ping="http://nevkontakte.org.ru/trackback/374" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/374&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/374?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/70xpj9YqK_rYdFafc53FHD9jaWY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/70xpj9YqK_rYdFafc53FHD9jaWY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/70xpj9YqK_rYdFafc53FHD9jaWY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/70xpj9YqK_rYdFafc53FHD9jaWY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=faVYFl5aVGE:Zq_U-oRGyhI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=faVYFl5aVGE:Zq_U-oRGyhI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=faVYFl5aVGE:Zq_U-oRGyhI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=faVYFl5aVGE:Zq_U-oRGyhI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/faVYFl5aVGE" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/kak-zastavit-sapport-govorit#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/zametki-i-nablyudeniya/in-vitrtual-zametki-o-zhizni-virtualnoi">In vitrtual: заметки о жизни виртуальной</category>
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/374</wfw:commentRss>
 <pubDate>Wed, 23 Dec 2009 09:36:36 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">374 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/kak-zastavit-sapport-govorit</feedburner:origLink></item>
<item>
 <title>Пишем простой авторегистратор. Часть 5 - подтверждение по email.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/kmSLwfDIQC4/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email</link>
 <description>&lt;h3&gt;Содержание&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-1-instrumentarii"&gt;Инструментарий&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-2-osnovy"&gt;Основы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-3-boremsya-s-kapchei"&gt;Боремся с капчей&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu"&gt;Подключаем антикапчу&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email"&gt;&lt;strong&gt;Подтверждение по email&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter"&gt;Пишем модуль для RegSubmitter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Давайте заглянем в наш актив. Сейчас мы &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu"&gt;уже умеем писать простые регистраторы&lt;/a&gt;, умеющие бороться с капчей при помощи антикапчи. От &lt;strike&gt;окончательного захвата мирового господства&lt;/strike&gt; полной автоматизации процесса регистрации нас отделяет единственный барьер - подтверждение по почте. Его преодолением мы сегодня и займемся. Под нож снова пойдет toodoo.ru, который мы уже препарировали в &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-2-osnovy"&gt;самом начале&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Шаг 1 - анализ.&lt;/h3&gt;
&lt;p&gt;Прежде всего, надо проверить, требуется ли подтверждение вообще &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt; Если нет, то можно идти за &lt;strike&gt;пивом&lt;/strike&gt; кефиром и наслаждаться воскресным отдыхом. Кроме того, бывает так, что подтверждение почты не является необходимым, но приносит какие-то бонусы. В таком случае вы вольны выбирать, надо вам подтверждать, или слишком лень. Я обычно подтверждаю, поскольку это придает профилю более человекоподобный вид.&lt;/p&gt;
&lt;p&gt;Далее требуется выяснить, достаточно для подтверждения просто перейти по ссылке из письма, или надо совершить какие-то дополнительные действия. В случае с toodoo.ru после перехода на страницу нужно нажать на кнопку &amp;quot;Согласен&amp;quot; для завершения подтверждения. Поэтому нужно провести анализ этой формы, точно так же как мы &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-2-osnovy#_analyze"&gt;анализировали&lt;/a&gt; на предмет защиты саму форму регистрации.&lt;/p&gt;
&lt;p&gt;&lt;a href="/files/screen33.jpg" class="inline-image-link" title="Просмотреть: screen33.jpg"&gt;&lt;img src="http://nevkontakte.org.ru/files/imagecache/Thumbinal/screen33.jpg" alt="screen33.jpg" title="screen33.jpg"  class="inline" width="200" height="53" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;Шаг 2 - пишем код.&lt;/h3&gt;
&lt;p&gt;Для работы с почтой мы будем использовать PEAR модуль (не путать с модулями движка php) &lt;a href="http://pear.php.net/package/Net_POP3"&gt;Net/POP3&lt;/a&gt;. На многих хостингах он уже установлен, а если нет - во вложении архив со скриптом и модулем.&lt;/p&gt;
&lt;p&gt;Алгоритм действия таков:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Подключаемся к серверу, авторизуемся.&lt;/li&gt;
&lt;li&gt;Получаем список всех писем.&lt;/li&gt;
&lt;li&gt;Начинаем перебирать их, запрашивая заголовки каждого письма.&lt;/li&gt;
&lt;li&gt;Если в поле отправителя письма указан адрес сервиса, в котором мы регистрируемся - это нужное нам письмо. Если нет - ищем дальше.&lt;/li&gt;
&lt;li&gt;Из письма извлекаем ссылку на страницу подтверждения. (Тут нам снова понадобятся регулярные выражения).&lt;/li&gt;
&lt;li&gt;Если сервис того требует, совершаем дополнительные действия для завершения подтверждения.&lt;/li&gt;
&lt;li&gt;???&lt;/li&gt;
&lt;li&gt;PROF1T!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В случае с toodoo.ru, нам придется из страницы подтверждения добыть уникальный ключ (опять регулярки) и отправить один POST-запрос.&lt;/p&gt;
&lt;p&gt;Собственно, вот код, он основан на коде из 2 статьи:&lt;/p&gt;
&lt;pre style="font-size: 0.8em;"&gt;&lt;b&gt;&amp;lt;?php&lt;/b&gt;
&lt;span style="color: rgb(96, 82, 112);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'Content-Type: text/html; charset=UTF-8'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Функция, производящая регистрацию&lt;/i&gt;&lt;/span&gt;
&lt;b&gt;function&lt;/b&gt; register&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Все POST-параметры, которые надо отправить&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'agree'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Да, мы согласны с правилами ;-)&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'profile_is_female'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(192, 144, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Укажем пол&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'profile_nick_name'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Наш логин&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'user_email'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// email&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'user_password'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// пароль&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'user_password_repeat'&lt;/span&gt; =&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// повторим пароль&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;

	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Особая, curl-ная магия&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_init&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Инициализируем сессию&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://toodoo.ru/account/signup&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес обработчика формы&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POST&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Указываем, что нам нужно отправить POST-запрос&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POSTFIELDS&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Передаем POST-параметры&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_RETURNTRANSFER&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Результат нам нужно вернуть в переменную, а не на экран&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_FOLLOWLOCATION&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Переходить по редиректам&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Генерируем временный файл для cookies, чтобы они не терялись между запросами-редиректами&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$temp&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;tempnam&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'.'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'__'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_COOKIEJAR&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$temp&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;unlink&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$temp&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Запускаем запрос!&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_close&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Закрываем сессию&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Проверяем на успешность регистрации&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Поздравляем, ты успешно зарегистрировался в toodoo!'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
	{
		&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
	&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
	{
		&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;false&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
}

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Параметры регистрации. Их можно задавать руками, или считывать из файла - на ваше усмотрение.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'autoreg-test'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'autoreg-test@yandex.ru'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'*****'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Данные для авторизации на почтовом сервере&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_server&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'pop.yandex.ru'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_login&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'autoreg-test'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_password&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'**********'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;

&lt;span style="color: rgb(85, 85, 255);"&gt;$step&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$_GET&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'step'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;];&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Текущая стадия&lt;/i&gt;&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Выводим, что мы будем регать&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;Логин: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;, пароль: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;, email: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Начало регистрации&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$step&lt;/span&gt; == &lt;span style="color: rgb(191, 3, 3);"&gt;'reg'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Регаем&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;register&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
	{
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Успешно зарегистрирован'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'?step=confirm&amp;quot;&amp;gt;подтверждение по email&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
	&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
	{
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;b&amp;gt;Ошибка регистрации&amp;lt;/b&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;quot;&amp;gt;Еще раз&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
}
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Завершение регистрации (подтверждение)&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt; &lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$step&lt;/span&gt; == &lt;span style="color: rgb(191, 3, 3);"&gt;'confirm'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Подключаем библиотеку для работы с POP3&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;require&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'PEAR/POP3.php'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Создаем POP3-клиент&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt; = &lt;b&gt;new&lt;/b&gt; Net_POP3&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Подключаемся к почтовому серверу&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt;=&amp;gt;connect&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_server&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;110&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt; !== &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
	{
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Не удалось подключиться к серверу'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'?step=confirm&amp;quot;&amp;gt;Еще раз&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;die&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt;
	}
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Авторизуемся&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt;-&amp;gt;login&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_login&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$pop3_password&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt; !== &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
	{
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Не удалось авторизоваться'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'?step=confirm&amp;quot;&amp;gt;Еще раз&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		&lt;span style="color: rgb(96, 82, 112);"&gt;die&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt;
	}
	
	&lt;span style="color: rgb(85, 85, 255);"&gt;$list&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt;-&amp;gt;getListing&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Получаем список писем в ящике&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Ищем нужное письмо - скачиваем заголовки поочередно для всех писем и проверяем адрес отправителя&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;foreach&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$list&lt;/span&gt; &lt;span style="color: rgb(161, 161, 0);"&gt;as&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$item&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
	{
		&lt;span style="color: rgb(85, 85, 255);"&gt;$headers&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt;-&amp;gt;getParsedHeaders&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$item&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'msg_id'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;]);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Скачиваем заголовки&lt;/i&gt;&lt;/span&gt;
		
		&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Если отправитель совпадает с нужним нам, то приступаем к обработке&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$headers&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'From'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'toodoo.ru'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
		{
			&lt;span style="color: rgb(85, 85, 255);"&gt;$body&lt;/span&gt; = &lt;span style="color: rgb(85, 85, 255);"&gt;$api&lt;/span&gt;-&amp;gt;getBody&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$item&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'msg_id'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;]);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Скачиваем все письмо&lt;/i&gt;&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Вытаскиваем уникальную ссылку&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#http://toodoo.ru/confirm/contact\?code=\S+#i'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$body&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Особая, curl-ная магия&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_init&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Инициализируем сессию&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;]);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес страницы подтверждения&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_RETURNTRANSFER&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Результат нам нужно вернуть в переменную, а не на экран&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;. &lt;b&gt;CURLOPT_FOLLOWLOCATION&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Переходить по редиректам&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Выполняем запрос&lt;/i&gt;&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Мы, часом, еще не подтвердили?&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Видимо адрес по этой ссылке был уже подтвержден.'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
			{
				&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Что-то пошло не так, либо аккаунт уже подтвержден.'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
				&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'?step=confirm&amp;quot;&amp;gt;Еще раз&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
				&lt;span style="color: rgb(161, 161, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
			}
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// У toodoo.ru требуется отправить дополнительную форму о том, что мы действительно подтверждаем регистрацию&lt;/i&gt;&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Добываем уникальный ключ&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;code&amp;quot; value=&amp;quot;([^&amp;quot;]+)&amp;quot;&amp;gt;#'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Формируем поля запроса&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;
				&lt;span style="color: rgb(191, 3, 3);"&gt;'code'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$matches&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;],&lt;/span&gt;
				&lt;span style="color: rgb(191, 3, 3);"&gt;'agree'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Добавить'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;
			&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Отправляем форму&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://toodoo.ru/confirm/contact&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес обработчика формы&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POST&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Указываем, что нам нужно отправить POST-запрос&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POSTFIELDS&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Передаем POST-параметры&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Выполняем запрос&lt;/i&gt;&lt;/span&gt;
			
			&lt;span style="color: rgb(96, 82, 112);"&gt;curl_close&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Закрываем сессию&lt;/i&gt;&lt;/span&gt;
			
			&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Мавр сделал свое дело, мавр может уходить.&lt;/i&gt;&lt;/span&gt;
			&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Аккаунт успешно подтвержден!'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
			&lt;span style="color: rgb(161, 161, 0);"&gt;break&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
		}
	}
}
&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
{
	&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'?step=reg&amp;quot;&amp;gt;Начать регистрацию&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
}

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Все!  ;-)&lt;/i&gt;&lt;/span&gt;
&lt;b&gt;?&amp;gt;&lt;/b&gt;&lt;/pre&gt;&lt;p&gt;В коде опять есть пара синтаксических ошибок, но я думаю, для вас они проблемы не представляют &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;Итоги.&lt;/h3&gt;
&lt;p&gt;Теперь вы знаете все, что нужно для успешного написания авторегистратора практически к любому сервису. Поздравляю &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;p&gt;Но если вы думаете,&amp;nbsp;что это конец - то вы жестоко заблуждаетесь, я те позволю так просто от меня отделаться &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt; В рамках цикла будет еще целых 2 статьи. Заключительной частью будет разумно сделать ответы на ваши вопросы по авторегистраторам, так что не стесняйтесь их задавать, а вот содержимое 6 части я пока придержу в секрете. Пусть это будет небольшим сюрпризом &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/wink.png" title="Wink" alt="Wink" class="smiley-content" /&gt;&lt;/p&gt;
&lt;h3&gt;PS. Vivaldi - Summer Storm (by Children of Bodom)&lt;/h3&gt;
&lt;p&gt;Вам удачного программирования, а я пойду разучивать это произведение &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/bWx_GyTLGmQ&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/bWx_GyTLGmQ&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email" dc:title="Пишем простой авторегистратор. Часть 5 - подтверждение по email." trackback:ping="http://nevkontakte.org.ru/trackback/373" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/373&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div id="trackbacks"&gt;
&lt;div class="trackback" id="trackback-4"&gt;
&lt;h3 class="title"&gt;&lt;a href="http://sloger.net/story/pishem-prostoy-avtoregistrator-chast-5-podtverzhdenie-po-email-ne-v-kontakte-blog-veb-programmista.html"&gt;Пишем простой авторегистратор. Часть 5 - подтверждение по email.&lt;/a&gt;&lt;/h3&gt;
&lt;span class="submitted"&gt;from &lt;em&gt;Социальная сеть для блоггеров sloger.net&lt;/em&gt; on вс, 20/12/2009 - 19:10&lt;/span&gt;
&lt;div class="content"&gt; &lt;p&gt;Пятая статья из цикла "Пишем простой авторегистратор". В этой части рассматривается вопрос автоматического подтверждения по почте.&lt;/p&gt;
&lt;p&gt;В предыдущих частях уже рассмотрены вопросы создания простых авторегистраторов, регистраторов, позволяющих в...&lt;/p&gt;
 &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/373?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Прикрепленный файл&lt;/th&gt;&lt;th&gt;Размер&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://nevkontakte.org.ru/files/toodoo.zip"&gt;toodoo.zip&lt;/a&gt;&lt;/td&gt;&lt;td&gt;13.9 кб &lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0iPB9TqPKQSbyG65-4A-7HZizu8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0iPB9TqPKQSbyG65-4A-7HZizu8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0iPB9TqPKQSbyG65-4A-7HZizu8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0iPB9TqPKQSbyG65-4A-7HZizu8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=kmSLwfDIQC4:tmWlWDpHPOU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=kmSLwfDIQC4:tmWlWDpHPOU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=kmSLwfDIQC4:tmWlWDpHPOU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=kmSLwfDIQC4:tmWlWDpHPOU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/kmSLwfDIQC4" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/kreativ-bolee-menee-zakonchennye-stati">Креатив: более-менее законченные статьи</category>
 <enclosure url="http://nevkontakte.org.ru/files/toodoo.zip" length="14229" type="application/zip" />
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/373</wfw:commentRss>
 <pubDate>Sun, 20 Dec 2009 09:48:10 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">373 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email</feedburner:origLink></item>
<item>
 <title>Пишем простой авторегистратор. Часть 4 - подключаем антикапчу.</title>
 <link>http://feedproxy.google.com/~r/nevkontakte/~3/0dBU4rWIaZg/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu</link>
 <description>&lt;h3&gt;Содержание&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-1-instrumentarii"&gt;Инструментарий&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-2-osnovy"&gt;Основы&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-3-boremsya-s-kapchei"&gt;Боремся с капчей&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu"&gt;&lt;strong&gt;Подключаем антикапчу&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email"&gt;Подтверждение по email&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-6-pishem-dlya-regsubmitter"&gt;Пишем модуль для RegSubmitter&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;В прошлой статье я писал о том, как &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-3-boremsya-s-kapchei"&gt;бороться с капчей&lt;/a&gt; в формах регистрации. Однако тогда мы были вынуждены вводить ее руками. Сегодня я расскажу, как можно переложить эту работу на &lt;strike&gt;специально обученных обезьянок&lt;/strike&gt; сервис антикапча.&lt;/p&gt;
&lt;h3&gt;Что из себя представляет антикапча?&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://antigate.com"&gt;Антикапча&lt;/a&gt; - это сервис по ручному распознаванию капчи. Иными словами, сотни &lt;strike&gt;китайцев&lt;/strike&gt; школьников сидят и за копейки распознают капчу, которые им подсовывают. Я не представляю, где они находят столько дураков, готовых за $1 распознавать 1000 капч, но меня это и не волнует.&lt;/p&gt;
&lt;p&gt;Механизм работы сервиса простой:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Вы отправляете картинку на сервис и она встает в очередь на прием к обезьянкам.&lt;/li&gt;
&lt;li&gt;Раз в 5 секунд вы запрашиваете статус картинки.&lt;/li&gt;
&lt;li&gt;Если картинка не распозналась, ждете еще 5 секунд. Если ожидание затянулось - значит не судьба, спустя некоторое время картинка выпадает.&lt;/li&gt;
&lt;li&gt;Если картинка распозналась, то вы получаете текст, который по мнению обезьянки на ней написан.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;На счет мнения обезьянки надо сказать отдельно. Среди них попадаются откровенные халтурщики, которые вводят заведомую херню. Поэтому чтобы минимизировать шанс нарваться на такую сволочь, надо в запросе на добавление картинки максимально точно описать параметры текста.&lt;/p&gt;
&lt;h3&gt;Техническая сторона.&lt;/h3&gt;
&lt;p&gt;Антикапча предоставляет несложный API для взаимодействия с ней, однако уже написаны функции для PHP, Python, C++, Perl, C#, Delphi и даже VB и Asm, чем мы и будем пользоваться. В нашем случае, я воспользуюсь &lt;a href="http://antigate.com/curl.txt"&gt;PHP-версией с curl&lt;/a&gt;. В архив я включил слегка измененную для более удобного вывода процесса версию этого скрипта, но с тем же успехом можно работать и с оригинальным.&lt;/p&gt;
&lt;h3&gt;Инвайты на антикапчу.&lt;/h3&gt;
&lt;p&gt;Регистрация на этом сервисе требует инвайта. К сожалению, эти хитрецы не позволяют иметь больше одного не активированного инвайта, поэтому я публикую здесь только один: &lt;strike&gt;&lt;strong&gt;a9bcd1d903&lt;/strong&gt;&lt;/strike&gt; &lt;strong&gt;45914dfa51&lt;/strong&gt;. &lt;strike&gt;Кому надо еще - пишите на почту &lt;img align="absMiddle" src="http://nevkontakte.org.ru/files/email.gif" alt="" /&gt;. (См. UPD1 в конце поста)&lt;/strike&gt; Теперь &lt;a href="http://nevkontakte.org.ru/anticaptcha-invite"&gt;инвайты на антикапчу&lt;/a&gt; можно получить в автоматическом режиме.&lt;/p&gt;
&lt;h3&gt;Пишем код.&lt;/h3&gt;
&lt;p&gt;Он мало чем отличается от того, что я публиковал в прошлый раз. все изменения сосредоточены в части, управляющей процессом регистрации. Сами функции, отправляющие запросы на регистрацию, остались прежними.&lt;/p&gt;
&lt;pre style="font-size: 0.8em;"&gt;&lt;b&gt;&amp;lt;?php&lt;/b&gt;
&lt;span style="color: rgb(96, 82, 112);"&gt;header&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'Content-Type: text/html; charset=UTF-8'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
&lt;b&gt;function&lt;/b&gt; register1&lt;span style="color: rgb(104, 192, 160);"&gt;()&lt;/span&gt;
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Особая, curl-ная магия&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_init&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Инициализируем сессию&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://moemesto.ru/register/&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес формы&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_RETURNTRANSFER&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Результат нам нужно вернуть в переменную, а не на экран&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_FOLLOWLOCATION&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Переходить по редиректам&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_COOKIEJAR&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'cookie.txt'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Указываем файл для хранения кукисов&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Выполняем запрос&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// При помощи простейшего регулярного выражения добываем сессионный ключ&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;preg_match&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'#&amp;lt;input type=hidden name=&amp;quot;captchaid&amp;quot; value=&amp;quot;([a-f0-9]+)&amp;quot;&amp;gt;#i'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://moemesto.ru/captcha/&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$key[1]&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес картинки&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Скачиваем картинку&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_close&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Закрываем сессию&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(96, 82, 112);"&gt;file_put_contents&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'captcha.jpg'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Сохраняем&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;];&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Возвращаем добытый ключ&lt;/i&gt;&lt;/span&gt;
}

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Функция, производящая регистрацию&lt;/i&gt;&lt;/span&gt;
&lt;b&gt;function&lt;/b&gt; register2&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;
{
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Все POST-параметры, которые надо отправить&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;array&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'captchaid'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Передаем сессионный ключ&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'login'&lt;/span&gt;		=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Логин&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'email'&lt;/span&gt;		=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Емейл&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'password'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Пароль&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'captcha'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// А это наш код с картинки&lt;/i&gt;&lt;/span&gt;
		&lt;span style="color: rgb(191, 3, 3);"&gt;'do_reg'&lt;/span&gt;	=&amp;gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Зарегистрироваться'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// &amp;quot;Нажимаем&amp;quot; кнопку отправить ;-)&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;

	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Особая, curl-ная магия&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_init&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Инициализируем сессию&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_URL&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;http://moemesto.ru/register/&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// задаем адрес обработчика формы&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POST&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Указываем, что нам нужно отправить POST-запрос&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_POSTFIELDS&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$post&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Передаем POST-параметры&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_RETURNTRANSFER&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Результат нам нужно вернуть в переменную, а не на экран&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_FOLLOWLOCATION&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Переходить по редиректам&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_setopt&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;b&gt;CURLOPT_COOKIEJAR&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'cookie.txt'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Указываем файл для хранения кукисов. При чем он должен быть тот же, что и в прошлый раз, чтобы кукисы подхватились.&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Запускаем запрос!&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt; = &lt;span style="color: rgb(96, 82, 112);"&gt;curl_exec&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
	&lt;span style="color: rgb(96, 82, 112);"&gt;curl_close&lt;/span&gt; &lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$ch&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt; &lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Закрываем сессию&lt;/i&gt;&lt;/span&gt;
	
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Проверяем на успешность регистрации&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;//echo $result;&lt;/i&gt;&lt;/span&gt;
	&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(96, 82, 112);"&gt;strstr&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$result&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Поздравляем! Вы успешно зарегистрировались!'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
	{
		&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
	&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
	{
		&lt;span style="color: rgb(161, 161, 0);"&gt;return&lt;/span&gt; &lt;b&gt;false&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
	}
}

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Параметры регистрации. Их можно задавать руками, или считывать из файла - на ваше усмотрение.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'antifrager323'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'antifrag233@yopmail.com'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt; = &lt;span style="color: rgb(191, 3, 3);"&gt;'qwerty'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Выводим, что мы будем регать&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;Логин: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;, пароль: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;, email: &lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;lt;br/&amp;gt;&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Получаем капчу и сессионный ключ&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt; = register1&lt;span style="color: rgb(104, 192, 160);"&gt;();&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Подключаем апи антикапчи&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(161, 161, 0);"&gt;require&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;'ac_curl.php'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Распознаем капчу. Список и значение параметров функции можно узнать в начале файла.&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Чем точнее параметры будут описывать капчу, тем больше точность распознавания&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;=recognize&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;captcha.jpg&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;span style="color: rgb(191, 3, 3);"&gt;&amp;quot;ваш_api_key&amp;quot;&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt;&lt;b&gt;true&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;120&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;0&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;1&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;4&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(192, 144, 0);"&gt;6&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;);&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// На всякий случай показываем картинку и распознанный текст&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;img src=&amp;quot;captcha.jpg&amp;quot;&amp;gt;&amp;lt;br&amp;gt;Text:'&lt;/span&gt;.&lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;

&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Регаем&lt;/i&gt;&lt;/span&gt;
&lt;span style="color: rgb(161, 161, 0);"&gt;if&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;register2&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(85, 85, 255);"&gt;$login&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$email&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$password&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$captcha&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;,&lt;/span&gt; &lt;span style="color: rgb(85, 85, 255);"&gt;$key&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;))&lt;/span&gt;
{
	&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'Успешно зарегистрирован'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
}
&lt;span style="color: rgb(161, 161, 0);"&gt;else&lt;/span&gt;
{
	&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;b&amp;gt;Ошибка регистрации&amp;lt;/b&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
}
&lt;span style="color: rgb(96, 82, 112);"&gt;echo&lt;/span&gt; &lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;lt;br&amp;gt;&amp;lt;a href=&amp;quot;'&lt;/span&gt;.&lt;span style="color: rgb(96, 82, 112);"&gt;basename&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;(&lt;/span&gt;&lt;b&gt;__FILE__&lt;/b&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;)&lt;/span&gt;.&lt;span style="color: rgb(191, 3, 3);"&gt;'&amp;quot;&amp;gt;Еще раз&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span style="color: rgb(104, 192, 160);"&gt;;&lt;/span&gt;
&lt;span style="color: rgb(116, 136, 174);"&gt;&lt;i&gt;// Все!  ;-)&lt;/i&gt;&lt;/span&gt;
&lt;b&gt;?&amp;gt;&lt;/b&gt;&lt;/pre&gt;&lt;p&gt;Обратите внимание, что &amp;quot;ваш_api_key&amp;quot; надо заменить на нормальный api key, который есть в панели антикапчи, в разделе настройки. напомню, что в скрипте умышленно допущена пара синтаксических ошибок, чтобы отсеять все тех же обезьянок.&lt;/p&gt;
&lt;p&gt;Во вложении - архив с самом скриптом и модифицированной библиотекой работы с антикапчей.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPD1.&lt;/strong&gt; Завтра сделаю автоматическую выдачу инвайтов, дабы не тормозить очередь &lt;img src="http://nevkontakte.org.ru/sites/all/modules/smileys/packs/Roving/smile.png" title="Smile" alt="Smile" class="smiley-content" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;UPD2.&lt;/strong&gt; &lt;a href="http://nevkontakte.org.ru/anticaptcha-invite"&gt;Сделал&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;В следующем выпуске...&lt;/h3&gt;
&lt;p&gt;... вы узнаете, &lt;a href="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-5-podtverzhdenie-po-email"&gt;как подтвердить регистрацию по почте&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;PS. Lunatica - Out!&lt;/h3&gt;
&lt;p&gt;&lt;object width="425" height="344"&gt;
&lt;param value="http://www.youtube.com/v/tcbdkC6mOF0&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowscriptaccess" /&gt;&lt;embed width="425" height="344" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://www.youtube.com/v/tcbdkC6mOF0&amp;amp;hl=ru_RU&amp;amp;fs=1&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
 
&lt;!--
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
&lt;rdf:Description rdf:about="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu" dc:identifier="http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu" dc:title="Пишем простой авторегистратор. Часть 4 - подключаем антикапчу." trackback:ping="http://nevkontakte.org.ru/trackback/371" /&gt;
&lt;/rdf:RDF&gt;
--&gt;
&lt;div class="trackback-url"&gt;﻿&lt;div class="box"&gt;
    		&lt;h2 class="title" onclick="evance_get_obj = document.getElementById('comment_textarea'); evance_get_obj.style.display =(evance_get_obj.style.display == 'none')?'inline':'none'; "&gt;
			Trackback URL for this post:		&lt;/h2&gt;
	    &lt;div class="content" id="comment_textarea"&gt;http://nevkontakte.org.ru/trackback/371&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="watcher_node"&gt;&lt;a href="/user/0/watcher/toggle/371?destination=blog%2F1%2Ffeed" class="watcher_node_toggle_watching_link" title="Watch posts to be notified when other users comment on them or the posts are changed"&gt;You are not watching this post, click to start watching&lt;/a&gt;&lt;/div&gt;&lt;table id="attachments" class="sticky-enabled"&gt;
 &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Прикрепленный файл&lt;/th&gt;&lt;th&gt;Размер&lt;/th&gt; &lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
 &lt;tr class="odd"&gt;&lt;td&gt;&lt;a href="http://nevkontakte.org.ru/files/moemesto_ac.zip"&gt;moemesto_ac.zip&lt;/a&gt;&lt;/td&gt;&lt;td&gt;3.38 кб &lt;/td&gt; &lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4iH4pLz7sNTRcAGjmqu5lLhaRyQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4iH4pLz7sNTRcAGjmqu5lLhaRyQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4iH4pLz7sNTRcAGjmqu5lLhaRyQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4iH4pLz7sNTRcAGjmqu5lLhaRyQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=0dBU4rWIaZg:jpWBR7fVq4k:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=0dBU4rWIaZg:jpWBR7fVq4k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/nevkontakte?a=0dBU4rWIaZg:jpWBR7fVq4k:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/nevkontakte?i=0dBU4rWIaZg:jpWBR7fVq4k:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/nevkontakte/~4/0dBU4rWIaZg" height="1" width="1"/&gt;</description>
 <comments>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu#comments</comments>
 <category domain="http://nevkontakte.org.ru/category/rubriki-bloga/kreativ-bolee-menee-zakonchennye-stati">Креатив: более-менее законченные статьи</category>
 <enclosure url="http://nevkontakte.org.ru/files/moemesto_ac.zip" length="3459" type="application/zip" />
 <wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://nevkontakte.org.ru/crss/node/371</wfw:commentRss>
 <pubDate>Tue, 08 Dec 2009 10:00:00 +0000</pubDate>
 <dc:creator>Alek$</dc:creator>
 <guid isPermaLink="false">371 at http://nevkontakte.org.ru</guid>
<feedburner:origLink>http://nevkontakte.org.ru/blog/alek%24/pishem-prostoi-avtoregistrator-chast-4-podklyuchaem-antikapchu</feedburner:origLink></item>
</channel>
</rss>
