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

<channel>
	<title>Gustavo Henrique.net &#187; captcha</title>
	<atom:link href="http://www.gustavohenrique.net/brogui/tag/captcha/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gustavohenrique.net/brogui</link>
	<description>Só mais um blog com Wordpress</description>
	<lastBuildDate>Tue, 29 Jun 2010 00:00:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Formulário de contato no Django usando captchasblow</title>
		<link>http://www.gustavohenrique.net/brogui/2008/11/formulario-de-contato-usando-o-captchablow/</link>
		<comments>http://www.gustavohenrique.net/brogui/2008/11/formulario-de-contato-usando-o-captchablow/#comments</comments>
		<pubDate>Fri, 28 Nov 2008 14:44:19 +0000</pubDate>
		<dc:creator>gustavohenrique</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[contact form]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[gmail]]></category>

		<guid isPermaLink="false">http://www.gustavohenrique.net/brogui/?p=36</guid>
		<description><![CDATA[Introdução
Nesse artigo vou demonstrar como criar um formulário de contato contendo um campo captcha para enviar e-mail no Django, muito comum em blogs.
Segundo consta na wikipedia, CAPTCHA é um acrônimo da expressão &#8220;Completely Automated Public Turing test to tell Computers and Humans Apart&#8221; (teste de Turing público completamente automatizado para diferenciar entre computadores e humanos): [...]]]></description>
			<content:encoded><![CDATA[<h2>Introdução</h2>
<p>Nesse artigo vou demonstrar como criar um formulário de contato contendo um campo captcha para enviar e-mail no Django, muito comum em blogs.<br />
Segundo consta na wikipedia, <a href="http://pt.wikipedia.org/wiki/CAPTCHA">CAPTCHA </a>é um acrônimo da expressão &#8220;Completely Automated Public Turing test to tell Computers and Humans Apart&#8221; (teste de Turing público completamente automatizado para diferenciar entre computadores e humanos): um teste de desafio cognitivo, utilizado como ferramenta anti-spam.<br />
Captchasblow é uma aplicação desenvolvida por Brandon Low, plugável em qualquer projeto em Django, capaz de gerar um captcha. Vale lembrar que para conseguir gerar a imagem do captcha, faz-se necessário o uso da PIL, uma biblioteca em python para manipulação de imagens. Não irei abordar o processo de instação dessa biblioteca, uma vez que na maioria das distribuições Linux atuais é relativamente simples.<br />
<span id="more-36"></span></p>
<h2>Funcionamento</h2>
<p>O captchasblow gera uma string aleatória, armazena no banco de dados o valor dessa string, cria uma imagem contendo a string armazenada, cria um campo hidden com o id do registro dessa string e um campo para o usuário digitar o código captcha. O processo de validação consulta o banco de dados e verifica se o valor do campo id corresponde ao código digitado pelo usuário.<br />
Para utilizar o captchasblow é necessário que o form onde se deseja ter um campo captcha seja extendido de CaptchaForm. Assim, ao instanciar esse form, o construtor da classe automaticamente cria o captcha, bastando apenas renderizar no template.</p>
<h2>Iniciando</h2>
<p>Vou pular os passos de como criar um projeto e uma aplicação no Django e tomar como exemplo que meu projeto se chama captchaproject e minha aplicação minhaapp.<br />
Primeiramente é preciso fazer o download do captchasblog no site do autor. Acessem <a href="http://www.lostlogicx.com/captchasblow/">http://www.lostlogicx.com/captchasblow/</a>. No momento a última versão é a 0.4.<br />
Extraia o conteúdo do arquivo dentro do diretório do projeto. Após isso será criado o diretório captcha contendo o código da aplicação. Dentro desse diretório há os seguintes arquivos:</p>
<p><code><br />
gu@notebook:~/artigos/capthaproject$ ls -1 captcha/<br />
total 52K<br />
COPYING<br />
forms.py<br />
index.html<br />
__init__.py<br />
models.py<br />
README.txt<br />
settings.py<br />
urls.py<br />
util.py<br />
views.py<br />
</code></p>
<p>Abra o arquivo <code>forms.py</code> e altere a linha 38 onde está class <code>CaptchaForm(forms.BaseForm)</code> para <code>class CaptchaForm(forms.Form)</code>. Em seguida adicione a aplicação ao projeto, (adicionar <code>captchaproject.captcha</code> à variável <code>INSTALLED_APPS</code> contida no arquivo <code>settings.py</code>). E depois é necessário rodar o <code>syncdb</code> para criar a tabela no banco de dados.<br />
É possível alterar algumas configurações como fonte, cor da fonte, quantidade de caracteres&#8230; no arquivo <code>settings.py</code>. No meu caso, usando o ubuntu-8.04, precisei alterar o caminho da fonte para <code>FONT_PATH="/usr/share/fonts/truetype/ttf-bitstream-vera/VeraBd.ttf"</code>.<br />
Instalado e configurado o captchasblog, é a vez da aplicação <code>minhaapp</code>. Começarei criando o arquivo <code>forms.py</code> que define o formulário para contato, com o seguinte conteúdo:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django <span style="color: #ff7700;font-weight:bold;">import</span> forms
<span style="color: #ff7700;font-weight:bold;">from</span> captchaproject.<span style="color: black;">captcha</span>.<span style="color: black;">forms</span> <span style="color: #ff7700;font-weight:bold;">import</span> CaptchaForm
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> ContatoForm<span style="color: black;">&#40;</span>CaptchaForm<span style="color: black;">&#41;</span>:
  nome = forms.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">100</span>,required=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
  <span style="color: #dc143c;">email</span> = forms.<span style="color: black;">EmailField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">200</span>,required=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
  assunto = forms.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">100</span>,required=<span style="color: #008000;">True</span><span style="color: black;">&#41;</span>
  mensagem = forms.<span style="color: black;">CharField</span><span style="color: black;">&#40;</span>max_length=<span style="color: #ff4500;">10000</span>,required=<span style="color: #008000;">True</span>,widget=forms.<span style="color: black;">Textarea</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Agora vou criar os templates <code>base.html</code>, <code>contato.html</code> e <code>sucesso.html</code>.</p>
<p><code>base.html</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;
{%block principal%}
{%endblock%}</pre></div></div>

<p><code>contato.html</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">{%extends 'base.html' %}
{%block principal%}
&lt;!--
  #id_nome,#id_email,#id_assunto,#id_mensagem { width:305px; }
  .lineform { height: 35px; }
  label.label1 { display:block; float:left; width:100px; text-align:right; padding:6px; }
  #status { color:red; font-size:14px; }
--&gt;
&lt;form id=&quot;contactform&quot; action=&quot;/enviarmsg/&quot; method=&quot;post&quot;&gt;
&lt;div class=&quot;lineform&quot;&gt;
    &lt;label class=&quot;form1&quot; for=&quot;id_nome&quot;&gt;Nome:&lt;/label&gt; {{form.nome}}&lt;/div&gt;
&lt;div class=&quot;lineform&quot;&gt;
    &lt;label class=&quot;form1&quot; for=&quot;id_email&quot;&gt;E-mail:&lt;/label&gt; {{form.email}}&lt;/div&gt;
&lt;div class=&quot;lineform&quot;&gt;
    &lt;label class=&quot;form1&quot; for=&quot;id_assunto&quot;&gt;Assunto:&lt;/label&gt; {{form.assunto}}&lt;/div&gt;
&lt;div class=&quot;lineform&quot; style=&quot;height: auto;&quot;&gt;
    &lt;label class=&quot;form1&quot; for=&quot;id_mensagem&quot;&gt;Mensagem:&lt;/label&gt; {{form.mensagem}}&lt;/div&gt;
&lt;div class=&quot;lineform&quot; style=&quot;padding-top: 10px; height: 50px;&quot;&gt;
    &lt;label class=&quot;form1&quot;&gt;Verificação&lt;/label&gt; {{form.captcha|safe}} {{form.captcha_id|safe}}&lt;/div&gt;
&lt;div class=&quot;lineform&quot; style=&quot;padding-top:10px;&quot;&gt;
    &lt;label class=&quot;form1&quot;&gt; &lt;/label&gt;
&lt;input name=&quot;enviar&quot; type=&quot;submit&quot; value=&quot;Enviar Mensagem&quot; /&gt;&lt;/div&gt;
&lt;/form&gt;
&lt;div id=&quot;status&quot;&gt;
  {% for campo in form%}
    {%if campo.errors%}
      {{campo.label}}: {{campo.errors}}
    {%endif%}
  {%endfor%}&lt;/div&gt;
{%endblock%}</pre></div></div>

<p><code>sucesso.html</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">{%extends 'base.html'%}
{%block principal%}
&lt;div style=&quot;”color:green;font-size:14px;”&quot;&gt;
  Sua mensagem voi enviada com sucesso.&lt;/div&gt;
{%endblock%}</pre></div></div>

<p>Terceiro passo é criação das views dentro do arquivos <code>views.py</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">shortcuts</span> <span style="color: #ff7700;font-weight:bold;">import</span> render_to_response
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">http</span> <span style="color: #ff7700;font-weight:bold;">import</span> HttpResponse,HttpResponseRedirect
<span style="color: #ff7700;font-weight:bold;">from</span> captchaproject.<span style="color: black;">minhaapp</span>.<span style="color: black;">forms</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">core</span>.<span style="color: black;">mail</span> <span style="color: #ff7700;font-weight:bold;">import</span> EmailMessage
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> contato<span style="color: black;">&#40;</span>request<span style="color: black;">&#41;</span>:
  contatoform = ContatoForm<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">return</span> render_to_response<span style="color: black;">&#40;</span><span style="color: #483d8b;">'contato.html'</span>, <span style="color: black;">&#123;</span>
  <span style="color: #483d8b;">'form'</span>:contatoform
<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> sucesso<span style="color: black;">&#40;</span>request<span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">return</span> render_to_response<span style="color: black;">&#40;</span><span style="color: #483d8b;">'sucesso.html'</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> enviarmsg<span style="color: black;">&#40;</span>request<span style="color: black;">&#41;</span>:
  <span style="color: #ff7700;font-weight:bold;">if</span> request.<span style="color: black;">method</span>  == <span style="color: #483d8b;">'POST'</span>:
    contatoform = ContatoForm<span style="color: black;">&#40;</span>request.<span style="color: black;">POST</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> contatoform.<span style="color: black;">is_valid</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
      nome = request.<span style="color: black;">POST</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'nome'</span><span style="color: black;">&#41;</span>
      <span style="color: #dc143c;">email</span> = request.<span style="color: black;">POST</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'email'</span><span style="color: black;">&#41;</span>
      assunto = request.<span style="color: black;">POST</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'assunto'</span><span style="color: black;">&#41;</span>
      mensagem = request.<span style="color: black;">POST</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">'mensagem'</span><span style="color: black;">&#41;</span>
      mail = EmailMessage<span style="color: black;">&#40;</span>assunto,mensagem,<span style="color: #dc143c;">email</span>,<span style="color: black;">&#91;</span><span style="color: #483d8b;">'meulogin@meuprovedor.com'</span><span style="color: black;">&#93;</span><span style="color: black;">&#41;</span>
      <span style="color: #ff7700;font-weight:bold;">try</span>:
        mail.<span style="color: black;">send</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">return</span> HttpResponseRedirect<span style="color: black;">&#40;</span><span style="color: #483d8b;">'/sucesso/'</span><span style="color: black;">&#41;</span>
      <span style="color: #ff7700;font-weight:bold;">except</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> HttpResponse<span style="color: black;">&#40;</span><span style="color: #483d8b;">'Erro: Problemas tecnicos no servidor de email.'</span><span style="color: black;">&#41;</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
      <span style="color: #ff7700;font-weight:bold;">return</span> render_to_response<span style="color: black;">&#40;</span><span style="color: #483d8b;">'contato.html'</span>,<span style="color: black;">&#123;</span><span style="color: #483d8b;">'form'</span>:contatoform<span style="color: black;">&#125;</span><span style="color: black;">&#41;</span>
  <span style="color: #ff7700;font-weight:bold;">else</span>:
    <span style="color: #ff7700;font-weight:bold;">return</span> HttpResponse<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Erro: Nenhum form foi submetido.&quot;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Último passo é fazer o mapeamento de URLs no arquivo <code>urls.py</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">from</span> django.<span style="color: black;">conf</span>.<span style="color: black;">urls</span>.<span style="color: black;">defaults</span> <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #66cc66;">*</span>
<span style="color: #ff7700;font-weight:bold;">from</span> captchaproject.<span style="color: black;">captcha</span>.<span style="color: black;">views</span> <span style="color: #ff7700;font-weight:bold;">import</span> captcha_image
&nbsp;
urlpatterns = patterns<span style="color: black;">&#40;</span><span style="color: #483d8b;">''</span>,
  <span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^contato/$'</span>,<span style="color: #483d8b;">'captchaproject.minhaapp.views.contato'</span><span style="color: black;">&#41;</span>,
  <span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^sucesso/$'</span>,<span style="color: #483d8b;">'captchaproject.minhaapp.views.sucesso'</span><span style="color: black;">&#41;</span>,
  <span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^enviarmsg/$'</span>,<span style="color: #483d8b;">'captchaproject.minhaapp.views.enviarmsg'</span><span style="color: black;">&#41;</span>,
  <span style="color: black;">&#40;</span>r<span style="color: #483d8b;">'^captcha/(?P[0-9]+)/$'</span>, captcha_image<span style="color: black;">&#41;</span>
<span style="color: black;">&#41;</span></pre></div></div>

<p>E para finalizar, vou configurar o Django para enviar e-mail. Para isso, é necessário alterar o settings.py, adicionando as variáveis:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">EMAIL_HOST=<span style="color: #483d8b;">&quot;smtp.meuprovedor.com&quot;</span>
EMAIL_PORT=<span style="color: #483d8b;">&quot;25&quot;</span>
EMAIL_HOST_USER=<span style="color: #483d8b;">&quot;meuemail@meuprovedor.com&quot;</span>
EMAIL_HOST_PASSWORD=<span style="color: #483d8b;">&quot;minhasenha&quot;</span>
EMAIL_USE_TLS=<span style="color: #008000;">True</span> <span style="color: #808080; font-style: italic;"># caso o servidor requerer autenticação TLS</span></pre></div></div>

<p>Exemplo de como configurar para enviar e-mail pelo gmail:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;">EMAIL_HOST=<span style="color: #483d8b;">&quot;smtp.gmail.com&quot;</span>
EMAIL_PORT=<span style="color: #483d8b;">&quot;587&quot;</span>
EMAIL_HOST_USER=<span style="color: #483d8b;">&quot;meulogin@gmail.com&quot;</span>
EMAIL_HOST_PASSWORD=<span style="color: #483d8b;">&quot;minhasenha&quot;</span>
EMAIL_USE_TLS=<span style="color: #008000;">True</span></pre></div></div>

<h2>Conclusão</h2>
<p>Foi mostrado como criar um formulário para contato, usar captcha e enviar e-mail. Há outras alternativas para captcha como o reCaptcha e django-captcha, porém por questão de preferência optei pelo captchasblow por ser mais fácil de configurar a aparência.<br />
Gostaria de agradecer aos amigos do grupo django-br pela ajuda.</p>
<h2>Referência</h2>
<p><a href="http://www.lostlogicx.com/captchasblow/">captchasblow: http://www.lostlogicx.com/captchasblow/</a><br />
<a href="http://code.google.com/p/django-captcha/">django-captcha: http://code.google.com/p/django-captcha/</a><br />
<a href="http://www.recaptcha.net">reCaptcha: http://www.recaptcha.net</a></p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Compartilhe esse artigo</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://buzz.yahoo.com/submit?submitUrl=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;submitHeadline=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow&amp;submitSummary=" rel="nofollow" title="Adicionar ao&nbsp;Buzz"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/buzz.png" title="Adicionar ao&nbsp;Buzz" alt="Adicionar ao&nbsp;Buzz" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;title=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Del.icio.us"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/delicious.png" title="Adicionar ao&nbsp;Del.icio.us" alt="Adicionar ao&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;title=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;digg"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/digg.png" title="Adicionar ao&nbsp;digg" alt="Adicionar ao&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F" rel="nofollow" title="Adicionar ao&nbsp;Facebook"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/facebook.png" title="Adicionar ao&nbsp;Facebook" alt="Adicionar ao&nbsp;Facebook" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;title=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Google Bookmarks"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/google.png" title="Adicionar ao&nbsp;Google Bookmarks" alt="Adicionar ao&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.mister-wong.com/index.php?action=addurl&amp;bm_url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;bm_description=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Mister Wong"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/misterwong.png" title="Adicionar ao&nbsp;Mister Wong" alt="Adicionar ao&nbsp;Mister Wong" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;T=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Netscape"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/netscape.png" title="Adicionar ao&nbsp;Netscape" alt="Adicionar ao&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;title=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;reddit"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/reddit.png" title="Adicionar ao&nbsp;reddit" alt="Adicionar ao&nbsp;reddit" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;title=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Stumble Upon"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/stumbleupon.png" title="Adicionar ao&nbsp;Stumble Upon" alt="Adicionar ao&nbsp;Stumble Upon" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F" rel="nofollow" title="Adicionar ao&nbsp;Technorati"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/technorati.png" title="Adicionar ao&nbsp;Technorati" alt="Adicionar ao&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://tipd.com/submit.php?url=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F" rel="nofollow" title="Adicionar ao&nbsp;Tip'd"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/tipd.png" title="Adicionar ao&nbsp;Tip'd" alt="Adicionar ao&nbsp;Tip'd" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://twitter.com/home/?status=Check+out+Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow+@+http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F" rel="nofollow" title="Adicionar ao&nbsp;Twitter"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/twitter.png" title="Adicionar ao&nbsp;Twitter" alt="Adicionar ao&nbsp;Twitter" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.gustavohenrique.net%2Fbrogui%2F2008%2F11%2Fformulario-de-contato-usando-o-captchablow%2F&amp;t=Formul%C3%A1rio+de+contato+no+Django+usando+captchasblow" rel="nofollow" title="Adicionar ao&nbsp;Yahoo My Web"><img class="social_img" src="http://www.gustavohenrique.net/brogui/wp-content/plugins/social-bookmarks/images/yahoo.png" title="Adicionar ao&nbsp;Yahoo My Web" alt="Adicionar ao&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.gustavohenrique.net/brogui/2008/11/formulario-de-contato-usando-o-captchablow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
