PHPit - PHP

"Agora, pois, permanecem a fé, a esperança, o amor, estes três; mas o maior destes é o amor." (I Coríntios 13:13)

Descobrindo a consulta que o usuário fez no Google pra chegar no seu site

Prefácio


O título é bem grande mas o tutorial é simples! Tudo que nós precisamos é saber o que é o REFERER e qual o seu poder!

Conceito


Sempre que você troca de página, a URL anterior fica armazenada numa variável de ambiente chamada "REFERER", que não possui uma tradução exata para o português mas é algo do tipo "Referência".
A partir desta "referência" podemos descobrir qual foi a última URL que o nosso usuário esteve (limitando-se a aba atual). Sempre iremos encontrar o referer (se houver) dentro da superglobal $_SERVER.

Mão na massa


Você terá que criar um arquivo que deverá ser incluso no início de todos os arquivos. Chamaremos este arquivo de google.php

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2.  
  3. if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
  4. // Interpreta a URL e fatia ela em módulos... Os dados estarão no índice "query"
  5. $query = parse_url($_SERVER['HTTP_REFERER']);
  6.  
  7. // Retira a variável "q" da querystring, que é onde fica a consulta do Google
  8. parse_str($query['query'], $consulta);
  9.  
  10. // Coloca a consulta na variável $google
  11. $google = $consulta['q']; // Olha o "q" aqui! :)
  12. } else {
  13. $google = false;
  14. }
  15.  
  16. if ($google)
  17. print "Se você estava procurando por <strong>{$google}</strong>, veio ao lugar certo!";
  18.  
  19. ?>
<?php

    
if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
        
// Interpreta a URL e fatia ela em módulos... Os dados estarão no índice "query"
        
$query parse_url($_SERVER['HTTP_REFERER']);
       
        
// Retira a variável "q" da querystring, que é onde fica a consulta do Google
        
parse_str($query['query'], $consulta);
       
        
// Coloca a consulta na variável $google
        
$google $consulta['q']; // Olha o "q" aqui! :)
    
} else {
        
$google false;
    }
   
    if (
$google)
        print 
"Se você estava procurando por <strong>{$google}</strong>, veio ao lugar certo!";

?>


Fácil, né? :)

Caso você queria simular uma consulta no seu site para testar, basta realizar uma busca no Google e copiar a URL da página de resultados e colar como no exemplo abaixo (coloque esta declaração no começo do script):

Código: Alternar entre o modo de cópia/destaque
  1. <?php
  2.  
  3. $_SERVER['HTTP_REFERER'] = 'URL_COMPLETA_DA_CONSULTA_AQUI';
  4.  
  5. ?>
<?php

    $_SERVER
['HTTP_REFERER'] = 'URL_COMPLETA_DA_CONSULTA_AQUI';

?>


Conclusão


Se parecia difícil, agora percebemos que não é!
Provavelmente eu irei implementar isso no novo PHPit, portanto qualquer sugestão para melhoria do código é bem vinda!

Um abraço a todos e fiquem com Deus!

Dim dim

 

Comentaí! (05)

Boa Jaques!! Sempre quis saber como colocar as tags de pesquisa no site!! Shows!!

Abração! Kuen em 20/08/2008 às 10:52 utilizando o Mozilla Firefox Mozilla Firefox 3.0.1 no Windows Windows XP
Adorei. Tiago A. em 21/08/2008 às 09:21 utilizando o Mozilla Firefox Mozilla Firefox 3.0.1 no Windows Windows XP
uhuuu.... o novo blogdoxorna com certeza irá contar com esse recurso =) xorna em 26/08/2008 às 22:13 utilizando o Internet Explorer Internet Explorer 7.0 no Windows Windows Vista
Boooaaa Rafa... Show d bola esse esquema.. vou começar implementalo em meus projetos.. abração Jason em 26/09/2008 às 07:59 utilizando o Google Chrome Google Chrome 0.2.149.30 no Windows Windows XP
Como eu faria para tambem pegar o nome e a url do site?
Exemplo :
Alem de pegar a palavra pesquisada, queria pegar em separado a url do site (www.google.com.br) e pegar o nome do buscador (exemplo: google, yahoo etc...)

Descobri esse site (phpit.com.br) hoje. Muito bom. Parabéns pelos artigos.

Renato Renato em 17/10/2009 às 21:21 utilizando o Internet Explorer Internet Explorer 7.0 no Windows Windows XP
 

Comenta logo, pô!

* Todos os links inseridos nos comentários possuem rel="nofollow" para impedir com que crawlers considerem os mesmos como relevantes.
* Os e-mails não são divulgados.

Dados pessoais

Você é realmente um humano?

Finalmente, digite seu comentário :)

Caixinha de Sugestões

O que é isso? Aqui você pode simplesmente digitar uma sugestão (artigos, resenhas, melhorias, etc) sem precisar preencher longos formulários. Digite o que quiser na caixinha abaixo e eu lerei com o maior prazer! Se quiser se identificar, fique a vontade!

O PHPit é redigido e mantido por Rafael Jaques - Política de Privacidade.

XHTML/CSS desenvolvido por André Gazola.

PHPit 2007 - 2009 - Alguns direitos reservados.

Feeds ;)

Creative Commons License

PHPit por Rafael Jaques é licensiado sob a Creative Commons Atribuição-Uso Não-Comercial-Compartilhamento pela mesma Licença 2.5 Brasil License.