Regresar a la página www.ComoCrearTuWeb.com
Resultados 1 al 5 de 5

Tema: ¿como identificar al usuario mediante cookies?

  1. #1
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    555
    Poder de Reputación
    11

    ¿como identificar al usuario mediante cookies?

    Bueno, visto que con las IPs no se puede saber si un usuario te vuelve a visitar (a no ser que sea en la misma secion), para darle la bienvenida, o agradecerle su fidelidad, me planteo hacerlo mediante cookies.
    Se que como minimo debo introducir la cookie en el PC del visitante creandola y implantandola en el HEADERS.
    Código PHP:
    <?php setcookie("migalleta",time(3600*24*365));?>
    Ahora no se como hacer para darle el mensaje de bienvenida, segun su nº de visitas.
    Si...
    Código PHP:
    if (isset(migalleta) && migalleta ==1) {
    echo 
    "Bienvenido";
    } else {
    echo 
    "¿como meto un swicht aqui para segun cuantas veces haya visitado la pagina el mensaje sea uno u otro?";

    Lo mejor de caerse al tropezar, es volverse a levantar.

  2. #2
    Esto empieza a ser un vicio... Habitante Avatar de cesar_ed
    Fecha de Ingreso
    11 feb, 10
    Mensajes
    563
    Poder de Reputación
    10
    pues utilizar las cookies para identificar visitas ahm pues no es del todo muy bien ya que el usuario podria borrar sus cookies y todo se perderia , pero bueno siguien que la cookie tenga aproximadamente un tiempo infinito (demasiado tiempo) se podria ser borrando y creando la misma cookie pero incrementando su valor en 1 siguiendo tu idea. Aunque tienes un error porque: ¿como la galleta va ser igual a 1 si no tiene valor asignado?. Solo tiene el nombre asignado , para asignarle el valor sera asi:

    De esta manera:
    //el uno asigna valor a la cookie
    <?php setcookie("migalleta",1,time(3600*24*365));?>

    Aqui el script tuyo aumentando unas cosillas :
    //aqui hay error en sintaxis (falta obtener la galleta) aumentado uso de $_COOKIE
    //asi que definimos la variable que contendra la galleta
    $migalleta = $_COOKIE['migalleta'];
    if (isset($migalleta) && $migalleta ==1) {
    echo "Bienvenido";
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta",1,time(-3600*24*365));
    la volvemos a crear
    setcookie("migalleta",2,time(3600*24*365));
    } else {
    switch($migalleta)
    {
    case 2 :
    echo "Hola es tu segunda visita a nuestro sitio :D";
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta",2,time(-3600*24*365));
    la volvemos a crear
    setcookie("migalleta",3,time(3600*24*365));
    break;
    default:
    echo "Bienvenido a la web";
    setcookie("migalleta",1,time(3600*24*365));
    break;
    }

    }
    Y asi tendriamos nuestro script,

    Claro no lo recomiendo mucho pero en fin hay que aprender sobre todo :D

    Un saludo
    Es facil programar "Solo interesate en aprender"

  3. #3
    Esto empieza a ser un vicio... Habitante Avatar de gjulian
    Fecha de Ingreso
    29 ene, 09
    Ubicación
    Sevilla
    Mensajes
    555
    Poder de Reputación
    11
    Lo he hecho tal cual me dices, y siempre da el mismo mensaje.
    Lo he retocado un poco, y hace lo mismo.
    Código HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    <title>Page title</title>
    Código PHP:
    <?php setcookie("migalleta","$migalleta",time(3600*24*365));?>
    Código HTML:
    </head>
    <body>
    Código PHP:
    <?php
    //Aqui el script tuyo aumentando unas cosillas :
    //aqui hay error en sintaxis (falta obtener la galleta) aumentado uso de $_COOKIE
    //asi que definimos la variable que contendra la galleta

    $migalleta $_COOKIE['migalleta']+1;
    if (isset(
    $migalleta) && $migalleta ==1) {
    echo 
    "Bienvenido";
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    //la volvemos a crear
    setcookie("migalleta","$migalleta",time(3600*24*365));

    else {
    switch(
    $migalleta)
    {
    case 
    :
    echo 
    "Hola esta es tu visita nº ".$migalleta;
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    //la volvemos a crear
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    case 
    :
    echo 
    "Hola esta es tu visita nº ".$migalleta;
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    default:
    echo 
    "Bienvenido a la web";
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    }

    ?>
    Código HTML:
    </body>
    </html>
    Y ya que dices que tu no lo haría de esta forma, la pregunta es inevitable. ¿Como lo harias tu?
    Lo mejor de caerse al tropezar, es volverse a levantar.

  4. #4
    Esto empieza a ser un vicio... Habitante Avatar de lantiga
    Fecha de Ingreso
    23 feb, 11
    Mensajes
    897
    Poder de Reputación
    10
    Bueno yo que odio las galletitas casi que te aconsejo que te pases a html5 que tiene un opción para lo que buscas hora no recuerdo el nombre pero si te interesa; sabrás a lo que refiero en cuanto indagues un poco sobre el tema de bases de datos asociadas a html5 .
    Suscribete a Los videotutoriales de Lantiga y podre hacer vídeos más largos y con mejor calidad.

  5. #5
    Esto empieza a ser un vicio... Habitante Avatar de cesar_ed
    Fecha de Ingreso
    11 feb, 10
    Mensajes
    563
    Poder de Reputación
    10
    Cita Iniciado por lantiga Ver Mensaje
    Bueno yo que odio las galletitas casi que te aconsejo que te pases a html5 que tiene un opción para lo que buscas hora no recuerdo el nombre pero si te interesa; sabrás a lo que refiero en cuanto indagues un poco sobre el tema de bases de datos asociadas a html5 .
    HTML5 aun no es una recomendacion oficial y no todos los usuarios lo poseen asi que al igual no hay muchas posibilidades de exitos

    Cita Iniciado por gjulian Ver Mensaje
    Lo he hecho tal cual me dices, y siempre da el mismo mensaje.
    Lo he retocado un poco, y hace lo mismo.
    Código HTML:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    
    <html>
    <head>
    <title>Page title</title>
    Código PHP:
    <?php setcookie("migalleta","$migalleta",time(3600*24*365));?>
    Código HTML:
    </head>
    <body>
    Código PHP:
    <?php
    //Aqui el script tuyo aumentando unas cosillas :
    //aqui hay error en sintaxis (falta obtener la galleta) aumentado uso de $_COOKIE
    //asi que definimos la variable que contendra la galleta

    $migalleta $_COOKIE['migalleta']+1;
    if (isset(
    $migalleta) && $migalleta ==1) {
    echo 
    "Bienvenido";
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    //la volvemos a crear
    setcookie("migalleta","$migalleta",time(3600*24*365));

    else {
    switch(
    $migalleta)
    {
    case 
    :
    echo 
    "Hola esta es tu visita nº ".$migalleta;
    //Eliminamos la cookie y la incrementamos un numero para la proxima visita.
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    //la volvemos a crear
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    case 
    :
    echo 
    "Hola esta es tu visita nº ".$migalleta;
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    default:
    echo 
    "Bienvenido a la web";
    setcookie("migalleta","$migalleta",time(-3600*24*365));
    setcookie("migalleta","$migalleta",time(3600*24*365));
    break;
    }

    ?>
    Código HTML:
    </body>
    </html>
    Y ya que dices que tu no lo haría de esta forma, la pregunta es inevitable. ¿Como lo harias tu?
    Hace lo mismo porque le aumentas en uno aqui:

    $migalleta = $_COOKIE['migalleta']+1;

    y solo deberia ser sin el + 1
    Y pues para ser un invitado siempre se complicara ya que si es por ip o si es por cookies se pueden eliminar las cookies y si es por ip puede cambiar , asi que pues no recomiendo mucho eso de invitados que esten de vuelta, lo mejor que podrias hacer es y que se me acaba de ocurrir en este mismo instante, es combinar ips con cookies que tal suena? ... pues se me acaba de ocurrir ahora mismo mientras escribia, lo que podrias hacer es en el momento que ingrese crear una cookie con el valor de la ip con la que entro, esa ip se almacena en la bd y si cambia la ip la cookie seguira siendo la misma , lo que hara es conectarse a la bd buscando la ip por la cookie existente y entonces modificar la bd con la nueva ip, asi si cambia la ip pero no la cookie encontraras al mismo usuario y si se elimina la cookie, pero la ip es la misma la encontrara y se creara la cookie, se aumentan posibilidades de exito y de obtener el usuario visitante.

    Un saludo
    Es facil programar "Solo interesate en aprender"

Permisos de Publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •