Como utilizar captcha em seus sites

On 29/07/2010, in Captcha, Códigos, asp, by Feijão Costa

Precisei habilitar um captcha pra um site de votação, e no começo bati um pouco a cabeça, mas depois encontrei o caminho certo.

Pra não reinventar a roda, usei o Captcha mais famoso existente, o reCAPTCHA, e aqui embaixo segue um passo a passo do que você precisa fazer pra utilizar ele no seu site também.

  1. Acesso o site do reCAPTCHA, e cadastre-se lá. Você pode depois inserir diversos sites no seu perfil;
  2. Cadastre o site onde você irá utilizar o serviço. Esse cadastro é feito apenas para o domínio principal, e todos os subdomínios utilizam os mesmos dados. Atente para o fato que você pode habilitar suas Keys pra funcionar em qualquer URL, mas aconselho a usar isso somente se a sua aplicação vai rodar em vários domínios, fugindo ao seu controle;
  3. Após o cadastro você tera dois dados: sua chave pública (Public Key), e a chave privada (Private Key). Vamos usar elas no próximo passo;
  4. Na documentação do reCAPTCHA você encontra os plugins para as mais diversas linguagens. Nesse exemplo (que foi a minha necessidade) vamos fazer no ASP Clássivo. Eu uso o exemplo de códigos usado por eles, com uma pequena modificação. Abaixo segue o código que eu estou usando:
    <%
    recaptcha_challenge_field  = Request(“recaptcha_challenge_field”)
    recaptcha_response_field   = Request(“recaptcha_response_field”)
    recaptcha_public_key       = “SUA_CHAVE_PUBLICA” ‘ your public key
    recaptcha_private_key      = “SUA_CHAVE_PRIVADA” ‘ your private key
    ‘ returns the HTML for the widget
    function recaptcha_challenge_writer()
    recaptcha_challenge_writer = _
    “<script type=”"text/javascript”">” & _
    “var RecaptchaOptions = {” & _
    ”   theme : ‘clean’,” & _
    ”   lang : ‘pt’,” & _
    ”   tabindex : 0″ & _
    “};” & _
    “</script>” & _
    “<script type=”"text/javascript”" src=”"http://www.google.com/recaptcha/api/challenge?k=” & recaptcha_public_key & “”"></script>” & _
    “<noscript>” & _
    “<iframe src=”"http://www.google.com/recaptcha/api/noscript?k=” & recaptcha_public_key & “”" frameborder=”"1″”></iframe><>” & _
    “<textarea name=”"recaptcha_challenge_field”" rows=”"3″” cols=”"40″”></textarea>” & _
    “<input type=”"hidden”" name=”"recaptcha_response_field”"value=”"manual_challenge”">” & _
    “</noscript>”
    end function
    ‘ returns “” if correct, otherwise it returns the error response
    function recaptcha_confirm(rechallenge,reresponse)
    Dim VarString
    VarString = _
    “privatekey=” & recaptcha_private_key & _
    “&remoteip=” & Request.ServerVariables(“REMOTE_ADDR”) & _
    “&challenge=” & rechallenge & _
    “&response=” & reresponse
    Dim objXmlHttp
    Set objXmlHttp = Server.CreateObject(“Msxml2.ServerXMLHTTP”)
    objXmlHttp.open “POST”, “http://www.google.com/recaptcha/api/verify”, False
    objXmlHttp.setRequestHeader “Content-Type”, “application/x-www-form-urlencoded”
    objXmlHttp.send VarString
    Dim ResponseString
    ResponseString = split(objXmlHttp.responseText, vblf)
    Set objXmlHttp = Nothing
    if ResponseString(0) = “true” then
    ‘They answered correctly
    recaptcha_confirm = “”
    else
    ‘They answered incorrectly
    recaptcha_confirm = ResponseString(1)
    end if
    end function
    %>
  5. Insira o código acima em um arquivo .asp, por exemplo inc.captcha.asp, não esquecendo de inserir sua chave pública e sua chave privada no início do arquivo;
  6. Crique um arquivo chamado formulario.asp e nele você vai inserir seu formulário normalmente, no início do arquivos vamos fazer o include do inc.captcha.asp e no formulário vamos inserir a chamada para o captcha. Exemlpo:
    <!–#include file=”inc.captcha.asp”–>
    <html>

    <form name=”formulario” method=”post” action=”processa.asp”>

    <%=recaptcha_challenge_writer()%>
    <input type=”submit”>
    </form>
    </html>
  7. O próximo passo será criar o processa.asp que irá receber os dados do seu formulário. Nesse arquivo você vai novamente fazer o include do inc.captcha.asp, e rodar a função de verificação. Se o captcha foi digitado corretamente ele retorna uma string vazia, caso contrário retorna um erro. Abaixo um exemplo pro tratamento:
    <!–#include file=”inc.captcha.asp”–>
    validaCaptcha = recaptcha_confirm(recaptcha_challenge_field,recaptcha_response_field)
    if(validaCaptcha = “”) then
    Response.write(“Sucesso!”)
    else
    Reponse.write(“Erro!”)
    end if
    %>

O básico esta ai. Com isso da pra você já brincar um pouco com o reCAPTCHA. Vale gastar alguns minutos lendo um pouco a documentação, inclusive sobre a parte de personalização. Sucesso ai!

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Truques com seu endereço de e-mail do Gmail

On 21/07/2010, in Dicas, Google, by Feijão Costa

Hoje conversando com o Daniel que trabalha comigo, descobri uma coisa muito interessante: os “.” num endereço de e-mail do gmail são facultativos. Isso mesmo. Tanto faz você mandar um e-mail para fulano.silva@gmail.com como para fulanosilva@gmail.com. Ambos irão para a mesma pessoa.

Tenha seu e-mail “.” ou não, eles podem ser inseridos repetidas vezes no seu endereço. E não é soh isso. Sua conta de e-mail pode ter diversos aliases (apelidos) sem muito trabalho. Explico: adicionando um “+” imediatamente antes do arroba, seguido por qualquer texto, também vai pra sua caixa de mensagens. Exemplo: fulanosilva+listas@gmail.com vai pra conta fulanosilva@gmail.com.

Pode parecer besteira, mas essa facilidade de criar alias pode te ajudar na organização da sua caixa de entrada, e na criação de regras pra gerenciar seus e-mails quando chegam. Como no exemplo acima, você pode usar pra todas as suas listas de e-mail o endereço com o +listas e criar uma regra pra sempre que vir e-mail pra esse endereço, cair direto numa pasta soh pra e-mails de listas, e assim por diante.

Legal né? Anote essa daí, porque eu achei muito interessante.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Como gerar uma senha aleatória em PHP

On 20/07/2010, in Códigos, PHP, by Feijão Costa

Se você precisa gerar um trecho de texto aleatório pra usar como uma senha automática, ou algo do tipo, escrevi um código bem simples para fazer isso.

Nesso código uso o comando range do PHP, que gera um array com uma lista de valores incrementando do menor ao maior. Explico: range(1,9) vai gerar um array, onde os valores vão de 1 a 9. Esse comando aceita letras também. Abaixo segue o código:

function geraSenha($ln=8){
.    $chars = array_merge(range(‘a’, ‘z’), range(0, 9));
.    shuffle($chars);
.    return(substr(implode($chars),0,$ln));
}

Nessa função você pode enviar o tamanho que quer da sua string, ou deixar que automaticamente ele gerará com tamanho de 8 caractere. Lembrando, a função vai retornar um texto mesmo, e não um array.

Faça bom proveito.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

resizeMyBrowser – Guarde esse link!

On 13/07/2010, in Browsers, Usabilidade, by Feijão Costa

Alguém gastou algumas horas pra fazer aquilo que você provavelmente sempre pensou em fazer, mas teve preguiça (rs). No máximo o que fiz foi criar um javascript no meu favoritos pra redimensionar pra 1024×768.

Nesse site você tem a simulação das principais resoluções que precisa levar em conta quando vai desenvolver uma aplicação web, inclusive com a opção de levar em conta o tamanho interno ou externo do browser.

Em tempo, esse site ele começou em 14 de junho desse ano. Valeu Chen, a classe agradece.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Brincando com o layout do YouTube

On 12/07/2010, in Proposta, YouTube, by Feijão Costa

Hoje pintou no meu Twitter um link para um “vídeo redondo” no YouTube. Fique super curioso e fui ver. A princípio fiquei impressionado, mas passado alguns segundos, me lembrei que na verdade aquilo era um truque, como foi feito no lançamento de Wario Land para Wii.

Quando criamos um canal do YouTube profissional, temos algumas regalias e conseguimos inserir objetos no topo do seu canal. Dê uma olhada nesse do Gilberto Gil. De acordo com o teu contrato do YouTube, essa área aumenta, a ponto de ficar do tamanho ou até maior que a tela de visualização normal de vídeos.

Deu pra sacar agora como foram feitos esses exemplos né? Um flash, tocando o vídeo do youtube, e simulando as outras funções da página.

Lembre-se disso, quando for montar propostas aos seus clientes.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Onde foi parar o botão publicar, do meu WordPress? Fiz essa pergunta durante dias, mas como o usuário em questão não era usado para postar, demorei pra tentar resolver o problema.

Na hora de tentar descobrir, fui pro banco achando que era alguma configuração do usuário, mas não achei nada que desse sinal do problema.

Fiz então o que deveria ter feito desde o início: acessei o Oráculo, e em dois minutos descobri que era a coisa mais simples do mundo: Não sei como ou porque, alguém clicou no botão “Opções de Tela” que aparece ta página de post, e selecionou a opção de 1 coluna, o que fez desaparecer a coluna da direita.

Pra resolver, bastou selecionar a opção de 2 colunas (veja na imagem abaixo), e pronto!

Layout - Duas Colunas

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Safari 5.0 vs Google Analytics

On 03/07/2010, in Uncategorized, by Feijão Costa

Achei que era um problema no meu computador, ou na minha conta, mas acabo de constatar que ninguém esta conseguindo usar o site do Google Analytics, pelo Safari 5.0. Quando tento acessar os dados de uma conta ele me apresenta a seguinte mensagem: This page has encountered an error that may prevent it from working correctly. (como na imagem abaixo)

Em busca de uma solução pra esse meu problema, vi muita gente reclamando demais dessa nova versão do Safari, e principalmente aqueles que fizeram a atualização via Software Update. Ele ficou mais lento, e ainda tem esse agravante de não funcionar o Analytics. Provavelmente outros sites devem estar apresentando o mesmo problema.

Mas o que mais intriga é que o erro foi reportado tanto no fórum do Google Analytics, como no fórum da Apple, e até agora, passado semanas, ninguém se manifestou, seja pra jogar a culpa no outro, ou pra divulgar alguma solução.

De qualquer forma fica uma dica pra amenizar o problema do Safari 5.0, e deixá-lo um pouco mais rápido

  1. Vá ao site da Apple, e faça o download do Safari 5.0;
  2. Instale novamente, e reinicie o computador;
  3. Ao retornar ao sistema, abra o Disk Utility e clique em “Repair Permissions”. Vai demorar bons minutos;
  4. Reinicie mais uma vez o computador, e perceberá que o Safari esta um pouco mais rápido

Enquanto nenhuma das partes se manifesta, continuemos a usar o Google Analytics a partir de outros Browsers.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Usabilidade nas tabelas da copa

On 01/07/2010, in Usabilidade, by Feijão Costa

Acabo de ler uma análise feita por Mercedes Sanches, Fernando Oliveira e Diogo Degaki sobre a usabilidade nas tabelas da copa espalhadas por ai.

Engraçado perceber que quase todos se preocuparam exclusivamente com a apresentação e não com a função: informar.

Vale a leitura da apresentação desse teste no site, e também dar uma lida nessa apresentação aqui embaixo.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Calibre sua bateria do Macbook

On 28/06/2010, in Apple, Bateria, Manutenção, by Feijão Costa

Acabo de ler um artigo no Tecnoblog que traz uma dica bem importante para usuários de equipamentos Apple. É comum vermos eles se gabando da durabilidade de suas baterias, e uma coisa importante pra manter a vida útil da sua, principalmente se trabalha com o macbook o tempo todo na mesa (assim como eu), e mantém ele muito tempo ligado na tomada, sem respeitar muito os ciclos (ta, eu sei que não deveria fazer isso).

Você pode ler o artigo todo aqui, ou pode seguir esses passos que transcrevo do Tecnoblog aqui:

  1. Ligue o macbook na tomada, deixando atingir 100% da carga. Mantenha ele conectado na tomada por mais 2 horas;
  2. Tire o macbook da tomada, e use-o até ele desligar sozinho por falta de carga;
  3. Matenha a bateria desligada por 5 horas;
  4. Conecte ele novamente na tomada, deixando mais uma vez atingir 100% da carga;
  5. Pronto! Sua bateria foi calibrada.

PS: Passos baseados nos indicados no post da Tecnoblog.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr
 

Instalei aqui o WP 3.0 e a princípio tudo funciona bem. Tem algumas novidades, como uma área que só cuida de atualizações (tanto de plugins, como de versões do WP, como de templates), ele agora se refere aos blogs como sites, e não tem mais diferença entre o Multi Usuários (MU) e o simples, de um só blog. Aqui no meu caso, eu tinha um MU, e agora to usando o 3.0.

Ainda não confirmei, mas parece que agora as versões podem ser específica pra cada site: eu tenho a opção de atualizar somente o site que estou, ou propagar isso pra todas as outras.

Após a instalação, ele te orienta a desabilitar o arquivo blogs.php que fica dentro da pasta wp-content, e a usar agora o ms-files.php que fica na pasta wp-includes, e ai entra a dica. As imagens do seu blog provavelmente vão sumir assim que vc deletar ou renomear o blogs.php. A solução é simples:

- Abra o arquivo .htaccess;

- Localize a linha RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L];

- Troque o apontamento pro novo arquivo: RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L];

- Problema Resolvido.

Agora é testar essa nova versão!

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Yahoo! Buzz
  • Twitter
  • Posterous
  • Reddit
  • StumbleUpon
  • Tumblr