post icon

Detectar desde donde llegó un visitante con PHP

Saber sobre nuestro origen, de donde venimos es una de las incógnitas aún no resueltas de nosotros los humanos, por suerte para nosotros los programadores tenemos esta respuesta gracias a PHP, nos dice de donde venimos y que podemos hacer al respecto sobre a donde queremos ir o hacer (Ya se, ya se.. parece que me fumé antes de escribir la intro).

Volviendo a lo serio, detectar desde donde provienen nuestros usuarios en muchos casos es sumamente útil, con ello podríamos colocar ciertos anuncios, o crear un comportamiento distinto del sitio, o tan sólo almacenar esa información para un posterior proceso de estadísticas, etc. etc..

El código que agregaremos debe estar presente en todas las páginas, para que sea fiable, por ello es recomendable agregarlo antes del tag html, en el ejemplo detectamos si el visitante llego a través del motor de búsqueda de google.

<?php
session_start();
if(strpos($_SERVER['HTTP_REFERER'],"google") == true) {
    $_SESSION['googliano'] = "si";
}
?>

Luego podemos trabajar con esta variable desde cualquier parte del sitio, y tomar las acciones que nos parezcan necesarias, en éste ejemplo solo se imprimirá un mensaje, pero cuento con que ustedes tendrán más imaginación que yo 😛

<?php
if($_SESSION['googliano'] == "si"){
    echo "Este visitante es oriundo de Google =P"; // o lo que querramos hacer.
}
?>

 

14 junio 2010

Comentarios desde Facebook:

  1. avatar
    GeekZero PARAGUAY Google Chrome Windows
    17 agosto 2010 at 20:36 #

    Ahora entiendo mejor lo que deseas hacer, es distinto el código que necesitas.

    He creado un post nuevo inspirado en tu pregunta lo puedes leer aquí:

    http://www.devtroce.com/2010/08/17/detectar-el-pais-de-origen-del-usuario-con-php/

    Lo que necesitaras es crear en tu BD o en un archivo de texto, referencias para asociar los paises a las zonas que te convengan crear.

    En el post te he mostrado como obtener el nombre del pais, una vez obtenido eso podes comparar con la estructura que vas a crear y dependiendo la zona que venga el usuario mostrar el contenido, espero te sirva ese articulo.

    Cuentanos que tal te va..

  2. avatar
    Ricardo CHILE Mozilla Firefox Windows
    17 agosto 2010 at 17:42 #

    Me parece que debería funcionar, pero especificamente lo que yo necesito es saber desde que lugar físico proviene cada usuario, por ejemplo acá al lado de mi nombre se indica el pais de origen, explorador y sistema operativo, entonces lo que a mi me sirve es saber desde que region viene un usuario para así ofrecerle contenido específico de su zona, será muy complicado algo así?
    Otro ejemplo, cuando yo entro al sitio http://www.mtv.com automaticamente detecta que yo provengo de latinoamerica y me da la posibilidad de visitar la versión para latinoamerica.
    Saludos

  3. avatar
    Ricardo CHILE Mozilla Firefox Windows
    16 agosto 2010 at 10:35 #

    Hola, excelente método, pero para mi que no soy programador en PHP, sólo tengo algunas nociones, me asaltan dudas, lo que quiero es que dependiendo de que lugar venga el visitante ofrecerle un link especifico. o sea que el mismo link en la página cambie segun el visitante.
    Ojalá puedas ayudarme, saludos

    • avatar
      GeekZero PARAGUAY Google Chrome Windows
      16 agosto 2010 at 11:04 #

      Hola Ricardo, lo quieres hacer en PHP o en otro lenguaje? (lo pregunto por tu comentario me dejo en dudas.

      Si es con PHP, puedes usar este ejemplo que ves arriba. Puedes anidar varios condicionales if o utilizar un switch, y según el referido dentro del condicional cambias el echo que muestro yo, por un tag distinto

      1
      
      <a href="link.html" rel="nofollow">Link1</a>

      Cuentame si te sirve, o vemos una solucion mas fina..

      • avatar
        Ricardo CHILE Mozilla Firefox Windows
        16 agosto 2010 at 11:45 #

        Justamente eso es lo que quiero hacer, te cuento, estoy diseñando un sitio en wordpress, el cual tiene 3 streaming de audios distintos, entonces dependiendo desde donde venga el visitante, quiero mostrarle el link a alguna de estos 3 streaming, entonces por lo que he estado averiguando hay que hacerlo como indicas más arriba, pero lo que no sé, es como declarar el referido para que me indique lo que quiero
        Gracias por la pronta respuesta!

        • avatar
          GeekZero PARAGUAY Google Chrome Windows
          16 agosto 2010 at 12:03 #

          No he probado este código, pero debería ser algo así: pruebalo y cuentanos..

          1
          2
          3
          4
          5
          6
          7
          8
          
          <?php
          if(strpos($_SERVER['HTTP_REFERER'],"google") == true) 
             echo <a href="linkGoogle.html" rel="nofollow">Streaming para los que vienen de Google</a>;
          if(strpos($_SERVER['HTTP_REFERER'],"bing") == true) 
             echo <a href="linkMSN.html" rel="nofollow">Streaming para los que vienen de Bing</a>;
          if(strpos($_SERVER['HTTP_REFERER'],"yahoo") == true) 
             echo <a href="linkYahoo.html" rel="nofollow">Streaming para los que vienen de Yahoo</a>;
          ?>
  4. avatar
    physical therapist Internet Explorer Windows
    14 junio 2010 at 22:09 #

    Wow this is a great resource.. I’m enjoying it.. good article

Responder