Resultados 1 al 8 de 8

Detectar pais del Usuario y mostrarlo sin usar plantillas en vB3x

Esta es una discusión en el tema Detectar pais del Usuario y mostrarlo sin usar plantillas en vB3x dentro del foro Tutoriales de programación, parte de la categoría Programación avanzada y trabajos Freelance; Reseña: Con este tutorial vamos a usar una pagina php y mostrarlo como una de vBulletin pero sin usar el sistema de plantillas como en el caso de test.php ( Click aqui para ver el tutorial ), esto es bastante util ya que no estamos condicionados a que si existe ...

  1. #1
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Cool Detectar pais del Usuario y mostrarlo sin usar plantillas en vB3x

    Reseña:
    Con este tutorial vamos a usar una pagina php y mostrarlo como una de vBulletin pero sin usar el sistema de plantillas como en el caso de test.php (Click aqui para ver el tutorial), esto es bastante util ya que no estamos condicionados a que si existe o no dicha plantilla en el estilo actual

    Lo Primero que debes saber:
    Lo primero que debes saber es que las IP ya se encuetra distribuidas por paises, es decir que un rango ya se sabe que pertenece a un pais en especifico, y si en algunas páginas vez que dicen que se actualiza a diario (como la que vamos a usar en el ejemplo) es básicamente para actualizar la IP con una ciudad (De aqui que a diario actualizan sus archivos) pero si solo quieres detectar el pais no hay problema

    Tutorial:
    Necesitamos un archivo que contenga el Rango de IP - Pais, para eso yo utilizaré este php que ya tiene incluso funciones que hacen todo el trabajo

    http://chir.ag/projects/geoiploc/aut...eoiploc.tar.gz

    La web del autor o de donde lo he sacado asi como el ejemplo en php standard es:

    PHP GeoIPLocation Library - IP Address to Country - Chirag Mehta : chir.ag


    Lo que tenemos que hacer es subir el php del archivo que acabas de bajar (geoiploc.php) y subirlo junto al siguiente archivo:

    Haz un archivo php y lo llamaremos tu_pais.php con el siguiente contenido:

    Código PHP:
    <?
    // ######################## SET ENTORNO PHP ###########################
    error_reporting(E_ALL & ~E_NOTICE);

    // ##################### DEFINIR COSNTANTES IMPORTANTES #######################

    define('THIS_SCRIPT''tu_pais');  
    /*
    este es el nombre de este Scrit, asi que en las plantillas podran usar una condicion asi:(en el Navbar o footer por ejemplo)
    <if condition="THIS_SCRIPT == 'tu_pais'">
        No mostrar Adsense, algo especial etc, etc
    </if>
    */
    // #################### PRE-CACHE DATOS Y PLANTILLAS ######################
    //Obtener Grupo de Frases  Especiales
    $phrasegroups = array();

    //Obtener Plantillas Especiales desde el datastore
    $specialtemplates = array();

    // pre-cache Plantillas usadas en todas las Acciones de este php
    $globaltemplates = array();
            
    // Pon aqui todas las plantillas que hayas creado, pero curiosamente si no las pones, igualito funciona (esto es lenguaje c pues
            //RECUERDA QUE ESTE ES EL NOMBRE DE LA PLANTILLA QUE CREASTE


    // pre-cache Plantillas usadas para Acciones Estemplates used by specific actions
    $actiontemplates = array();

    // ########################## REQUERIDO ############################
    require_once('./global.php'); //con esto cargas todas las opciones de vBulletin, ademas de la conexion, acceso a MySQL, etc, etc

    // #######################################################################
    // ######################## COMIENZO DEL SCRIPT PRINCIPAL ############################
    // #######################################################################

    $navbits = array(); 
    $navbits[$parent] = 'Deteccion de Pais';  //esto se vera en el NavBar (el arbol que sale cuando entras a un tema, etc en el navbar)

    $navbits construct_navbits($navbits); //Que vBulletin lo compile a su manera
    eval('$navbar = "' fetch_template('navbar') . '";'); //Luego usamos esa compilacion con la plantilla navbar (que será llamado en la plantilla prueba



    include("geoiploc.php"); // Incluimos el Archivo bajado para localizar el pais

      
    if (empty($_POST['checkip'])) 
      {
        
    $ip $_SERVER["REMOTE_ADDR"]; //si llego desde otra ubicacion o con url directa, toma la IP del cliente
      
    }
      else
      {
        
    $ip $_POST['checkip']; //si mando una IP desde la misma pagina tu_pais.php
      
    }
      

    /*INICIO de Plantilla en PHP y asi evitando el uso del sistema de plantillas de vBulletin*/
    $plantillaphp  ''.$stylevar[htmldoctype].'
    <html dir="'
    .$stylevar[textdirection].'" lang="'.$stylevar[languagecode].'">
    <head>
    '
    .$headinclude.'
    <title>Identificación de Pais - '
    .$vbulletin->options['bbtitle'].' </title>
    </head>
    <body>

    '
    .$header .'
    '
    .$navbar .'<!--Esto llama a la variable que se construyó en el php-->

     <!--INICIO DEL CONTENIDO QUE DESEAS MOSTRAR-->
     <!--Basicamente se hace para que se vea una tabla usando los colores de su foro-->
    <table class="tborder" cellpadding="'
    .$stylevar[cellpadding].'" cellspacing="'.$stylevar[cellspacing].'" border="0" width="100%" 

    align="center">
    <tr>
    <td class="tcat" colspan="2">Titulo de la Tabla, usando los colores de Categoria</td>
    </tr>
    <tr>
    <td class="alt1">Tu IP es: </td><td class="alt1"> '
    .$ip.' </td>
    </tr>
    <tr>
    <td class="alt2">Tu Pais es : </td><td class="alt2">'
    .getCountryFromIP($ip).'</td>
    </tr>
    <tr>
    <td class="alt1">El Codigo de tu Pais : </td><td class="alt1"> '
    .getCountryFromIP($ip"code").' </td>
    </tr>
    <tr>
    <td class="alt2">La Abreviacion de tu Pais es : </td><td class="alt2">'
    .getCountryFromIP($ip"AbBr").'</td>
    </tr>
    <tr>
    <td class="alt1">El Nombre de tu Pais : </td><td class="alt1">'
    .getCountryFromIP($ip" NamE ").'</td>
    </tr>
    <tr>
    <td class="alt2">Ingrese una IP para verificar</td><td class="alt2">
    <FORM action="tu_pais.php" method="post">
    <INPUT type="text" id="checkip" name="checkip">
    <INPUT type="submit" value="Verificar">
        </P>
     </FORM>
    </td>
    </tr>
    <tr>
    <td class="tfoot" colspan="2" align="center">vBsoporte.com</td>
    </tr>
    </table>

     <!--FIN DEL CONTENIDO QUE DESEAS MOSTRAR-->

    '
    .$footer.'
    </body>
    </html>  '
    ;

    /*FIN de Plantilla en PHP y asi evitando el uso del sistema de plantillas de vBulletin*/

    eval('print_output($plantillaphp);'); //y Finalmente compilamos y mostramos plantilla 
    //echo $plantillaphp;  //Tambien puedes usar un simple ECHO para mostrarlo XD
    ?>
    Como verás para nada usamos el sistema de plantilla de vBulletin, por tanto este es un archivo independiente.

    Si deseas más informacion sobre archivos php usando el sistema de vBulletin, te recomiendo estos otros 2 tutoriales
    Guía para Agregar Paginas personalizadas a vBulletin (Test.php) - vBSoporte
    Mostrar en una tablas, datos extraidos de la Base de datos - vBSoporte

    Importancia y Temas Legales

    Cualquier dato obtenido mediante la IP y divulgado no está permitido ya que violas el derecho de la privacidad del navegante, en este caso uno ve su propia informacion y nadie más lo hacer



    Temas Similares:
    Miniaturas adjuntadas Miniaturas adjuntadas tu_pais.jpg  
    [GRACIAS] -> es Boton magico que hace que siempre recibas soporte, USALO!!!

  2. Los siguientes 5 usuarios han agradecido a Jhonnyf por este útil mensaje:

    Chilesat (30/11/2009), Jet li (27/11/2009), joaquin (13/05/2010), ras_one (17/05/2010), santos72 (17/05/2010)

  3. #2
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    El archivo geoiploc.php pesa cerca a 1.5 megas, yo le quitaria la parte de ciudad, codigos, etc y lo dejaria solo para que me detecte pais, asi su tamaño bajaria considerablemente

    [GRACIAS] -> es Boton magico que hace que siempre recibas soporte, USALO!!!

  4. #3
    Usuario Avatar de Jet li
    Fecha de ingreso
    26/nov/2009
    Mensajes
    13
    Gracias
    9
    Agradecido 8 veces en 6 mensajes
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    La verdad lo haces sonar simple pero en realidad hacer toda una programacion asi es muy dificil.
    Te doy mis agredecimientos y felicitaciones por este excelente tutorial.


  5. #4
    Usuario
    Fecha de ingreso
    25/nov/2009
    Ubicación
    Argentina
    Mensajes
    39
    Gracias
    8
    Agradecido 8 veces en 4 mensajes
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    interesantisimo para un foro donde generalmente puedan entrar de varios paises viene genial.

    Boca Juniors mi pasión

  6. #5
    Usuario Avatar de santos72
    Fecha de ingreso
    16/ene/2010
    Mensajes
    24
    Gracias
    22
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    hola , gran tutorial Jhonnyf como siempre
    aunque noce porque me sale esto


    Código:
      Unable to add cookies, header already sent.
    File:  /var/www/virtual/miforo.com/htdocs/foro/tu_pais.php
    Line: 1



  7. #6
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    Ese mensaje sale cuando en tu PHP has dejado espacios en blanco antes del "<?"

    Fijate si ese es tu caso

    [GRACIAS] -> es Boton magico que hace que siempre recibas soporte, USALO!!!

  8. El siguiente usuario ha agradecido a Jhonnyf por este útil mensaje:

    santos72 (17/05/2010)

  9. #7
    Usuario Avatar de santos72
    Fecha de ingreso
    16/ene/2010
    Mensajes
    24
    Gracias
    22
    Agradecido 1 vez en 1 mensaje
    Poder de Credibilidad
    0

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    Cita Iniciado por Jhonnyf Ver mensaje
    Ese mensaje sale cuando en tu PHP has dejado espacios en blanco antes del "<?"

    Fijate si ese es tu caso

    Solucionado era eso , estoy intentando acer alguna modificacion para que saliera en el postbit naturalmente solamente el pais no la ip , no me vendria mal algun tutorial para eso
    seguramente a muchos les interesaria

    Muchas Gracias


  10. #8
    Administrador Avatar de Jhonnyf
    Fecha de ingreso
    13/jun/2009
    Ubicación
    In my mind
    Mensajes
    1.363
    Gracias
    60
    Agradecido 1.104 veces en 565 mensajes
    Entradas de Blog
    1
    Poder de Credibilidad
    10

    Predeterminado Respuesta: Detectar pais del Usuario y mostrarlo sin usar plantill

    Lee la ultima parte de este TEMA, asi que no voy a hacer un tutorial sobre eso

    [GRACIAS] -> es Boton magico que hace que siempre recibas soporte, USALO!!!

Etiquetas de este tema

Foro | Chat y Juegos | Hello Kitty | Programacion | Foro Cristiano | XAT | Chat Foro | Perú | SummArg