Integrando o Google reCaptcha com o CodeIgniter

Esse tutorial sobre a integração do Google reCaptcha com o CodeIgniter foi solicitado pelo leitor Marcelo Santos através das sugestões de posts. Você também pode sugerir posts para publicarmos, basta clicar no botão que aparece na lateral esquerda do site e em seguida clicar em Criar Sugestão.

A integração com o Google reCaptcha é bem simples. O primeiro passo é obter as chaves para uso da API, e isso você pode fazer através do console de gerenciamento da Google, clicando aqui. Após obter as chaves, é hora de você criar o projeto, e para isso vamos usar o Composer.

Criando o projeto

Abra o terminal e acesse o diretório onde armazena seus projetos, em seguida execute o comando a seguir para criar o projeto usando a versão mais recente do CodeIgniter.


composer create-project bcit-ci/codeigniter NOME_DO_DIRETORIO --prefer-dist

Feito isso, o projeto será criado em alguns instantes.

Biblioteca de apoio ao Google reCaptcha

Para facilitar o seu trabalho, os desenvolvedores do Google criaram uma biblioteca que vai permitir a você fazer a verificação do reCaptcha de maneira simples e rápida.

Instale a biblioteca de apoio usando o Composer. Para isso abra o arquivo composer.json que fica na raiz do projeto que você acabou de criar e adicione a linha a seguir em required, logo após as definições da versão do PHP:


"google/recaptcha": "~1.1"

Feito isso, execute no terminal o comando composer update para que a biblioteca de apoio do reCaptcha seja adicionada e altere o a configuração do autoload do Composer em applicaton/config/config.php.

Configurando a aplicação

A configuração da aplicação para uso do reCaptcha é bastante simples, e para esse exemplo não vamos alterar muito a estrutura original do controller Welcome e da view welcome_message que já são criados por padrão na instalação do CodeIgniter.

Editando o controller

Abra o arquivo application/controllers/Welcome.php e altere o médodo index() conforme o código a seguir:

Editando a view

Abra o arquivo application/views/welcome_message.php e altere o código conforme apresentado a seguir:

Para que o formulário funcione integralmente você precisará ir até o arquivo application/config/autoload.php e adicionar o carregamento automático do helper url.

Se você criou as chaves da API enquanto lia este post, será necesásrio aguardar um pouco – segundo documentação da API, cerca de 30 minutos – até que as chaves geradas estejam disponíveis. Ao tentar executar os testes da aplicação criada antes disso pode acontecer de dar erro e o reCaptcha não ser exibido ou não ser validado.

Sugestões de implementação

A implementação feita nesse tutorial é bem simples, mas vocÊ pode ir muito além. Veja a seguir sugestões de implementação que você pode adicionar em sua apolicação com reCaptcha:

  • definir as chaves da API em um arquivo de configuração, dentro de application/config
  • criar um callback para validação do reCaptcha de modo que possa validá-lo no formato de validação de formulário nativo do CodeIgniter

O código-fonte completo desse exemplo de integração está disponível no GitHub. Até o próximo tutorial!

Download do código-fonte no github