Generar y recuperar cookies | Oloblogger Una cookie (del inglés 'galleta') es simplemente un texto que a petición del servidor de determinada página, se almacena en el disco...

3 de febrero de 2010

Generar y recuperar cookies

Una cookie (del inglés 'galleta') es simplemente un texto que a petición del servidor de determinada página, se almacena en el disco duro del usuario que la visita. Esta información puede ser luego recuperada por el servidor en posteriores visitas y esta segunda parte es la que realmente les da utilidad.

Cuando visitamos con frecuencia un sitio web, las cookies pueden 'recordar' cosas que consiguen que la navegación por esa página sea un poco más fácil e incluso en ocasiones, más rápida. Esto ocurre por ejemplo, cuando visitamos una web dónde tenemos que identificarnos con usuario y contraseña. En este caso, tras comprobar que el login es correcto, lo normal es que se grabe una cookie en nuestro ordenador, para que el sistema no esté pidiendo constantemente que volvamos a loguearnos.

Otro ejemplo sería la conocida página de Google. Este motor de búsqueda permite a los usuarios decidir cuántos resultados de quieren ver en cada página. Gracias a una cookie, esta configuración permanece invariable para cada ordenador aún después de reiniciar distintas sesiones. La personalización de páginas es otra utilidad de estos ficheritos.

A pesar de esto, es bueno borrarlas de cuando en cuando, porque aunque algunas caducan tras un tiempo borrándose automáticamente, otras no lo hacen nunca. Por otra parte, muchas de ellas no nos servirán mas que una vez porque no repetiremos con la página que nos la grabó.

Si por parte del programador no se define una fecha de caducidad, la cookie se borrará en cuánto el usuario cierre su navegador, por lo que indicar cuando expirará una cookie, sirve realmente para que esta sobreviva entre distintas conexiones.

Como tantas otras cosas, las cookies pueden sufrir un mal uso y de ahí su mala fama. Con ellas se pueden almacenar y estudiar los habitos de navegación de una persona sin su conocimiento. Por esto precisamente, la mayoría de los navegadores ya incluyen algún sistema para filtrarlas, pudiendo decidir si se cede algo de intimidad a cambio de algunas comodidades o no.

¿Y cómo podemos nosotros utilizar esto? Pues seguramente habrá otras formas, pero un servidor sólo sabe hacerlo con JavaScript. El código es sencillo y una vez instalado nos permite recurrir a él tantas veces queramos aunque sea para distintos usos. Básicamente se trata de crear tres funciones: respectivamente, una que graba, otra que lee y una última que borra. El lugar dónde insertarlas en Blogger es antes del </head>:

<script type='text/javascript'>
//<![CDATA[

// Grabar
function setCookie(name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires == null) ? "" : "; expires=" + expires.toGMTString()) +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
((secure == null) ? "" : "; secure");
}

// Leer
function getCookie(name){
var cname = name + "=";
var dc = document.cookie;
if (dc.length > 0) {
begin = dc.indexOf(cname);
if (begin != -1) {
begin += cname.length;
end = dc.indexOf(";", begin);
if (end == -1) end = dc.length;
return unescape(dc.substring(begin, end));
}
}
return null;
}

//Borrar
function delCookie (name,path,domain) {
if (getCookie(name)) {
document.cookie = name + "=" +
((path == null) ? "" : "; path=" + path) +
((domain == null) ? "" : "; domain=" + domain) +
"; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}

//]]>
</script>

Una vez hecho esto, para grabar una cookie sólo necesitamos llamar a la primera función, pasando como parámetros al menos el nombre y el valor que queremos guardar. Adicionalmente, también la fecha de caducidad. Esta se pasará sumando al momento actual, los milisegundos que consideremos:

<script type='text/javascript'>
var expiration = new Date();
expiration.setTime(expiration.getTime() + 600000); //Caduca 600 segundos después
setCookie("micookie","hola",expiration);
}
</script>


El código anterior graba en una cookie llamada micookie, el texto hola, fijando su caducidad para diez minutos después del momento de la grabación (600.000 milisegundos = 600 segundos = 10minutos). Si queremos recuperar el valor de la cookie, entonces usamos la segunda función, buscando por su nombre entre las diversas cookies que pudiera haber:

<script type='text/javascript'>
var comprobar = getCookie("micookie");
}
</script>

Este código colocado a continuación de <body>, nos graba una cookie con el valor 'hola' y a continuación nos muestra el valor grabado en pantalla. La cookie desaparecerá en este caso a los 10 segundos:

<script type='text/javascript'>
var expiration = new Date();
expiration.setTime(expiration.getTime() + 10000);
setCookie("micookie","hola",expiration);
var comprobar = getCookie("micookie");
document.write(comprobar);
</script>

La función de borrado se utiliza de la misma manera que la de leer, accediendo por el nombre de la cookie. Los parámetros path y domain, no sé si serán de utilidad para Blogger, pero como no estorban mucho, creo que conviene dejarlos por si en alguna ocasión nos hicieran falta.

Las funciones se pueden dejar grabadas en la plantilla aun cuando no las utilicemos, a modo de librería para cuando se necesite. La combinación de las tres funciones nos permitirá manejar cookies para fines concretos, como el que veremos en próximas fechas.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

70 comentarios :

  1. Se me ocurren varios usos prácticos para el tema de las cookies, así que estaré pendiente de esas próximas entregas.

    ResponderEliminar
  2. Para blogger que usos se le puede dar?

    ResponderEliminar
  3. Hola Oloman,

    Me gustaría saber si es posible mostrar los títulos de las entradas del blog dentro de algún rótulo ( un color, una imagen, etc )y hacerlo solo en las entradas que yo quiera.

    Grácias.

    ResponderEliminar
  4. José y Raul, a mí de momento sólo se me ha ocurrido un uso concreto: mostrar un aviso sólo una vez... por lo que no creais que publicaré varias entregas. Al menos de momento.
    De todas formas, seguro que sabiendo cómo funcionan, en alguna ocasión nos servirán para algo. En realidad viene a ser como una mini base de datos grabado en el ordenador del visitante, que nos permite personalizar ciertas cosas.

    Mercier mc, la clave está en "hacerlo sólo en las entradas que yo quiera". Si lo pones en la plantilla afectará a TODAS, salvo que utilices un condicional. En ese caso, tendrías que crear uno para cada página que quisieras mostrar de forma distinta.
    Otra manera sería creando una clase para títulos "especiales" y luego incorporarla al título. Desde el editor de entradas se puede añadir código ahí.
    Raúl, lo mismo te digo.

    ResponderEliminar
  5. Hola Oloman. te hago una pregunta: en mi blog, puse imagen para el fondo y en la footer. como veras en esta imagen, es la vista completa del blog.
    1) como le pongo imagen justo debajo de la del fondo y que se repita hasta el footer? (numero 1 en la foto)
    2) que tamaño le tengo que poner a la footer para que (marcado con el numero 2 en al foto) el color del fondo no la tape?
    gracias y espero ser claro.

    ResponderEliminar
  6. Olomán, tú sabes que a mi no me gusta que se me dé todo hecho, pero conocer las bases de algo es fundamental.

    Hace tiempo estuve trasteando con las cookies precisamente para algo parecido a lo que dices: mostrar un mensaje por primera vez a quien entra y que no dé la paliza cada vez que se recarga la página... ¿A que van por ahí los tiros? Lo que pasa es que lo dejé correr para atender otros asuntos blogueriles más urgentes...

    ...Y se me olvidó qué es lo que hice, y no guardé nada, pero recuerdo que el JavaScript estaba presente en el proceso.

    Bueno, pues lo dicho, esperando esa/s entrega/s proxima/s, que de seguro será/n interesante/s. ;-)

    ResponderEliminar
  7. Anónimo4/2/10, 4:16

    Hola a tod@s. Estos son los siete blogs mas importantes para mi a la hora de saber lo que humildemente se, en este mundo de la blogosfera. Estan colocados por orden de encuentro, el ultimo lo descubrí el pasado año cuando le dieron el premio. No tengo palabras para expresaros el agradecimiento, no solo por lo que he aprendido gracias a vosotros/as y lo que sigo aprendiendo.Pero sobre todo, porque sois el vivo exponente de lo solidario, con vuestra entrega sin animo de lucro, aprendemos a compartir. Me considero a veces un ingrato porque no me paro ni a decir gracias, ni un triste hola. Sirvan estas palabras para salvarme. Gracias tambien a otros muchos blogeros que algo dejaron en el camino tambien. Pero como todo no van a ser alabanzas. Como todos estos son muy buenos, me gustaria poneros una prueba cariñosa y de buen rollito. Descubrí esta plantilla y aunque pueda recibir calificativos de ortera, me encanta por lo original de sus cosas. Quien de vosostros podria crear una igual para bloger ?. Ese es mi reto, y mi ayuda.Podria ser posible ? Gracias, sea la que sea la respuesta y disculpar la extensión de mi comentario-sugerencia. Hasta siempre y un abrazo
    http://webjcp.blogspot.com/
    http://gemablog-.blogspot.com/
    http://elescaparatederosa.blogspot.com/
    http://laeulalia-blogdeprobes.blogspot.com/
    http://vagabundia.blogspot.com/
    http://blogandweb.com/
    http://oloblogger.blogspot.com/

    PAGINA A DISEÑAR PARA BLOGER
    http://dragoninteractive.com/

    ResponderEliminar
  8. muchas gracias por este articulo, me parece muy interesante el tema de las cookies!

    ResponderEliminar
  9. Muchas Gracias por este magnifico articulo..me es super interesante ^^
    --
    Oloman como podria ocultar el punto de la viñeta en las entradas? por que yo lo estoy remplazando por una pequeña imagen..
    Aqui lo puedes ver http://borradorfeuer.blogspot.com/2009/12/path-of-golconda-return-2009.html

    ResponderEliminar
  10. Rodry, tendrías que cambiar bastante la estructura del blog y a mí no me resultó nada fácil, porque hay que tocar muchas cosas para que todo quede bien. Te tendrás que apañar con unas nociones generales y hacer pruebas.
    Primero, el fondo que ahora tienes en el BODY, hay que ponerlo en un nuevo selector (parte CSS) con un tamaño igual al de la imagen que formará dicho fondo. Luego, tienes que poner un DIV con ID=nuevo selector, que pille todo el código del blog. El fondo que quieres para 1, lo pones en el BODY.
    De esta manera, la imagen que tú llamas "fondocuaderno", ocupará sólo la parte de arriba y el fondo del body ocupará los huecos que quedarían a partir de ahí (lo que ahora tienes en gris), porque ocuparía todo el fondo principal.

    Ahora, tienes que poner en el nuevo selector y en el footer (y esto vale para contestar también la segunda pregunta) un z-index. Eso sirve para apilar capas y cuanto mayor sea el número, más "arriba" quedan. Tendrás que localizar las clases que forman las entradas y ponerles un z-index mayor que el de la imagen "fondocuaderno" para que quede por encima y menor que el que tenga el footer para que quede por debajo.
    La verdad es que me estoy liando yo solo, pero la idea va por ahí. Ya te decía que era un poco complicado y no sabría cómo concretarte más sin hacerlo yo mismo.

    ResponderEliminar
  11. José GDF, es exactamente lo que tú dices. Ve copiándote este script si te interesa porque como está hecho con funciones, valdrá para cualquier utilidad posterior.

    Eligor, con list-style-type:none; haces que no salga ningún símbolo en las listas.

    ResponderEliminar
  12. Kanalla, gracias por tus palabras pero no tengo tiempo para diseñar blogs completos. Si lo he hecho alguna vez, ha sido por un desafío personal, no de terceros.

    ResponderEliminar
  13. Hola oloman, gracias por tomarte el tiempo de responderme. Lo entendi, pero no se como hacerlo. No se que es un z-index, pero no importa. Despues veo a ver q me sale! chau chau.

    ResponderEliminar
  14. Búsca z-index en Google ;)

    ResponderEliminar
  15. ok, desp lo pruebo. Muchas gracias oloman.

    ResponderEliminar
  16. Gracias, no obstante. Tampoco era un desafío. Joder la gente esta demasiado suceptible. En fin. Un saludo y gracias.

    ResponderEliminar
  17. Muchas Gracias Oloman..me sirve de mucho! ^^..jeje como ultima pregunta como seria posible mover el texto hacia la izquierda asi para que no quede tan separado? - me refiero al texto con viñetas..=) (http://borradorfeuer.blogspot.com/2009/12/path-of-golconda-return-2009.html)

    ResponderEliminar
  18. Para eso tendrías que insertar un margin-left negativo en el selector de las listas (UL). Eso hará que se vaya a la izquierda.

    ResponderEliminar
  19. perfecto! me parec emuy itneresante sobretodo para los programas de afilicacion!

    ResponderEliminar
  20. Esto suena interesante, quiza serviria para lo que quiero hacer.

    En mi blog de pruebas (http://etbpruebas.blogspot.com/) tengo un gadget que le permite al lector escoger un fondo para el blog.

    De que manera podria usar las cookies para que el blog recordara el fondo que escogio el lector?

    Muchas gracias

    ResponderEliminar
  21. Pues groso modo, tendrías que guardar en la cookie un número (por ejemplo) que identificaría el fondo escogido. Luego, antes del javascript de selección de fondo, siempre habría que comprobar el valor de esa cookie y aplicarlo.
    Lo siento, pero ahora ando escaso de tiempo para explicarlo con más detalle, pero me lo apunto ;)

    ResponderEliminar
  22. Hola oloman, probe lo que me dijiste en el comentario #10. Lo entiendo perfectamente pero no puedo poner la imgen "fondocuaderno".
    es decir, como creo un nuevo selector y el div? donde lo coloco (antes del /head o del /b:skin).
    es mas complicado esto! jaja xD

    ResponderEliminar
  23. Selectores=CSS=antes de </b:skin>
    div=HTML=después de <body>

    ...y sí es complicado esto, sí. Si lo logras sacar, podrás decir que has aprendido un montón.

    ResponderEliminar
  24. te mande un mail xq no me deja comentar.

    ResponderEliminar
  25. Hola esto de los cookies me interesa,viene muy bien para los programas de afiliados o referidos.

    ¿Se podria obligar a que se guarde en las cookies de los visitantes algun enlace?

    Agradeceria tu respuesta

    un saludo

    ResponderEliminar
  26. Francisco, dentro de una cookie puedes guardar cualquier conjunto de caracteres y por tanto, una URL también. Ahora bien, eso no funcionará como enlace si después no se extrae la cookie y se pone como tal. Iría dónde en el ejemplo figura "hola"

    ResponderEliminar
  27. OK, muchas gracias oloman.
    un saludo

    ResponderEliminar
  28. Hola me llamo Miguel , soy novato asique...

    ¿Me podrias decir cual es el codigo para eliminar el Cookie?

    Gracias!

    ResponderEliminar
  29. Si son cookies generadas por tí, el código está en esta entrada. Si lo que quieres son borrar las cookies que te hayan podido grabar otros, eso lo tienes que hacer desde el menú de opciones del navegador que uses, en la parte de privacidad, herramientas, opciones... por ahí.

    ResponderEliminar
  30. Si lo siento esque no lei bien , una cosa como puedo poner una url al cookie?

    Esque creo una cookie pero veo que su url es : 2010/02 y yo quiero que sea el blog

    ResponderEliminar
  31. ¿Una URL? Los datos que guardes no se interpretan. Sólo serán caracteres uno al lado del otro. De todas formas, el valor guardado será el segundo de los que se envien a setCookie(name, value, expires, path, domain, secure).

    ResponderEliminar
  32. http://lh3.ggpht.com/_weBtcy-70Xs/TAj6HauNmXI/AAAAAAAAB9U/-zhLx5PzTv0/COOKIE.png

    Si por ejemplo la ruta es la fecha y yo lo leo desde el Dominio Principal no lo lee...

    ResponderEliminar
  33. Miguel, no sé lo que quieres hacer exactamente y además no sé mucho más sobre esto que lo que escribí.

    En el código se incluyen [path] y [domain], pero no los he tenido que usar nunca, ya que se pueden omitir al grabar la cookie y entonces se utiliza la dirección por defecto para guardarla.

    [path] - camino para el cual la cookie es válida (por defecto, el camino del documento que hace la llamada)
    [domain] - dominio para el cual la cookie es válida (por defecto, el dominio del documento que hace la llamada)

    Si no haces referencia a ninguno de estos dos (los omites), la cookie funcionará para todos. No sé por qué quieres restringirla cuando lo más fácil es no hacerlo :D

    ResponderEliminar
  34. rodrigo arnaiz17/6/10, 23:53

    Primero que nada gracias por este post y segundo es preguntar si alguien sabe como puedo hacer para que funcione en internet explorer pues desde mozilla funciona bien pero desde el explorer de interent no, digamos que correo el sito para abajo les dejo mi correo por si sabe me pueden decir por allá. rodrigoarnaiz@hotmail.com

    Me dijeron que le hace falta un javascript para que funcione en internet explorer pero no he encontrado nada. gracias de antemano

    ResponderEliminar
  35. Debería funcionar en cualquier navegador. Lo único que se me ocurre es que el tuyo en particular, lo tengas configurado para no aceptar cookies.

    ResponderEliminar
  36. oloman tengo un probemilla necesito tu ayuda porfavor eh eliminado si querer mi cookies del la cuenta de google y no puedo aceder a ella introdusco mi correo y mi contraseña y me aparece q active cookies y los tengo activado q hago?? espero una respuesta gracias..

    ResponderEliminar
  37. Hmmm... Eso me pasó una vez y no me acuerdo cómo logré solucionarlo. De lo único que me acuerdo es de que salía un aviso debajo que decía lo que había que hacer si pasaba eso. En mi caso salía en inglés.

    ResponderEliminar
  38. Hola Oloman te escribo para ver si puedes ayudarme en un pequeño problema. Verás hize un cartelito para la suscripción por correo flotante que se movia conforme bajabas la pantalla. Ahora bien necesitaba poner cookies para que solo apareciese una vez y no estuviese dando el coñazo a los usuarios y bueno seguí tu post y no puedo lograr que solo salga una vez. Espero que tengas una respuesta para mi problema te lo agradecería mucho ^^.

    ResponderEliminar
  39. Tendría que saber qué hiciste exactamente, pero de todas formas, mejor empieza por ver esta otra entrada en la que se explica con más detalle de lo que podría hacer aquí, cómo mostrar una capa una sola vez al día. Creo que con muy poca variación, es justo lo que quieres...

    ResponderEliminar
  40. No me funciona en Chrome 12, ¿hay alguna forma de hacer que funcione?

    ResponderEliminar
  41. Las cookies son independientes del navegador Raul. Acabo de comprobar esta página (http://goo.gl/F622f) que las usa para mostrar una pantalla de presentación sólo una vez cada 24 horas con una versión 12.0.742.91 y funciona correctamente. Pruébala tú. Si te funciona es que tu código está mal en alguna parte. Si no te funciona entonces es que tendrás restringidas las cookies o algo por el estilo.

    ResponderEliminar
  42. Uso este código:
    <script type='text/javascript'>
    var expiration = new Date();
    expiration.setTime(expiration.getTime() + 60000);
    setCookie("micookie","hola",expiration);
    var comprobar = getCookie("micookie");
    document.write(comprobar);
    </script>
    En Chrome me sale null pero en Firefox y en Internet Explorer me sale hola

    ResponderEliminar
  43. Raúl, tienes que probar cambiando el nombre de la cookie, ya que esa es la que otros sitios y yo usamos como ejemplo y puede que la tengas grabada de antes y no desde tu página de pruebas.

    De todas formas, supongo que también tienes grabado todo el primer trozo de código, porque ese realmente es el importante. El resto es para comprobar su funcionamiento.

    ResponderEliminar
  44. De todos modos cambiando micookie por cookiehola o por lo que lo cambie, que ya lo he probado, en Chrome 12 me sigue saliendo null, sin embargo en Firefox y en IE me sale hola y si me funciona la pagina que me dijiste que mirase, me sale la pagina una vez cada 24h debe ser que mi código está mal, en cuanto a las funciones si están puestas, pero no iba a ponerlas aquí con lo largo que es. Lo que no entiendo es porqué en Chrome no funciona y en los demás sí.

    ResponderEliminar
  45. Misterios informáticos en los que es más productivo no entrar. La prueba está hecha; el código funciona en Chrome; la cookie cambiada... prácticamente seguro, tecleaste algo más o cambiaste de orden algo, así que lo más práctico es que lo repases Raul.

    ResponderEliminar
  46. Hola Oloman Encontre tu post casi de milagro por que llevo buscando un post como este hace ratooo... Gracias por publicar ideas tan geniales como esta!...

    Mi Pregunta:
    Tengo un Script que solicita contraseña para acceder "ya que mi blog es privado", pero me toco poner este script en la mayoria de entradas para evitar el acceso a cualquiera. y las personas autorizadas a entrar me dicen que ya se volvio canson tener que digitar la contraseña a cada rato!... por lo que te pido que por favor me instruyes o me expliques Como podria aplicar una Cookie en este script:

    <script language="javascript">
    var getin = prompt("Acceso denegado, digite la contraseña:")

    if (getin!="Aqui la contraseña")
    {location.href='url de contraseña erronea'}
    else
    {alert('"Bienvenido" - Pulse la tecla "Enter" Para Continuar')}
    </script>

    Que opinas!, este script muestra una ventana de alerta solicitando la contraseña, pero se le podrá poner Cookie para no pedir tantas veces contraseña??? o si depronto sabes de algun Script que solicite contraseña y que se conjugue con las Cookies te agradeceria si me lo compartieras!...

    Gracias Oloman y te felicito por que tu Blog esta de lujo! ;)

    ResponderEliminar
  47. Hola Oloman, siento volver a comentar en esta entrada, pero tengo una duda y potro el de ciudad blogger me recomendo que acudiera a ti.
    Tengo una function que se llama: pedirvoto ()
    y consiste en un confirm que pide un voto, me gustaría saber como hacer para crear una cookie para al que esté visitando la página solo le salga una vez al día, es decir, que caduque a las 24 horas de haberse creado.
    Saludos,
    Óliver.G

    ResponderEliminar
  48. POr si acaso te dejo el script conpleto:

    <script language='JavaScript'>
    function pedirVoto(){
    if (confirm("Espero que te guste la pagina, por favor, ayuda a su expansión, pulsando sobre Aceptar para votarme.")){
    window.top.location.replace("http://laventanadewindows.boosterblog.es/")
    }
    }
    </script>

    ResponderEliminar
  49. Antes de que ambos malgastemos nuestro tiempo con esto Circulo W.H. ¿Tienes claro que ese sistema de contraseña no protege realmente el contenido? Es fácil descubrir la contraseña (Ver)

    ResponderEliminar
  50. Óliver.G, tendrías que seguir estos pasos:
    1. Grabar el primer trozo de código de este post con las funciones que te permitirán gestionar todo el tráfico de cookies.
    2. A continuación, insertas también el segundo trozo antes también del /head, cambiando el nombre de la cookie, el "hola" por un "1" (por ejemplo) y fijando el tiempo en 86400000 (24horas).
    3. Por último, metes tu script dentro de un condicional que compruebe si la cookie tiene un valor 1. En caso distinto, que se ejecute tu script de voto y en caso de que sea igual, que no haga nada. Con el tercer trozo (comprobar) consigues el valor de la cookie para poder hacer la comprobación.

    ResponderEliminar
  51. Vale, ya añadí el primer trozo de código, el segundo trozo es así, mira aver por si acaso esté mal:

    <script type='text/javascript'>
    var expiration = new Date();
    expiration.setTime(expiration.getTime() + 86400000); //Caduca 600 segundos después
    setCookie("micookie","1",expiration);
    }
    </script>

    Luego, por último, no se´muy bien como añadir una condicional, ¿de que forma la añadiría sobr ele codigo que te dí anteriormente?.
    Muchisimas gracias por la ayuda y saludos.
    Óliver.G

    ResponderEliminar
  52. Oliver, convendría que en lugar de "micookie" utilizaras otro nombre, pero el código está bien.

    El segundo trozo y el condicional serían así:

    var comprobar = getCookie("NOMBRECOOKIE";);
    if (comprobar != null) {}
    else {
    var expiration = new Date();
    expiration.setTime(expiration.getTime() + 86400000);
    setCookie("NOMBRECOOKIE"","1",expiration);
    ACCIONES A REALIZAR CUANDO LA COOKIE NO EXISTE (O ESTA ACTUALMENTE BORRADA)
    EN TU CASO, LA FUNCION PEDIR VOTO
    }

    Puedes ver un ejemplo de como va esta parte al final del segundo trozo de código de este post: http://goo.gl/IsqsS

    ResponderEliminar
  53. Hola Ya conseguí que funcionara, solo me quedó una duda, debajo de else va lo que se hace si la cookie no existe, pero lo que quiero que haga si la cookie existe entonces iria así?

    if (comprobar != null) {
    AQUÍ LO QUE SUCEDE SI LA COOKIE EXISTE?
    }

    ResponderEliminar
  54. No öliver.G. Creo recordar que lo que pretendes es que lo del voto sólo salga cuando es la primera vez que se accede. Entonces, cuando la cookie existe no se hace nada, porque quiere decir que el usuario ya pasó por el blog. Por eso el IF está vacío.

    Sólo cuando es la primera vez o la cookie ha caducado (en ambos casos no tiene ningún valor), se acciona la rutina.

    Si quieres que cuando haya cookie haga otra cosa distinta, entonces sí que se puede meter en esa parte.

    ResponderEliminar
  55. Si claro, mi idea era solo la primera vez, y funciona perfectamente, lo que quería saber era para saber como aplicarlo si en otra ocasión lo que yo requieriera era que las acciones se ejecutasen si la cookie existiese.
    Muchas gracias :)

    ResponderEliminar
  56. Y si quisiera que se eliminase una cookie al realizar una acción la función como sería?

    Tal vez así:

    delCookie("nombrecookie";);

    ResponderEliminar
  57. Sí, Óliver. Con eso desaparece la cookie con ese nombre.

    ResponderEliminar
  58. Hola amigo, como puedo usar una "Cookies" para que cuando visiten mi blog, primero que se registren, con el correo electrónico para acceder al blog, o como se puede crear una "ÁREA DE MIEMBROS" para dar 2 opciones... gracias

    ResponderEliminar
  59. @Liderforever10, para que sólo puedan acceder a tu blog tras un registro, creo que lo mejor es hacerlo privado. De esa manera, sólo aquellos a los que tu invites expresamente mediante su correo electrónico, podrán verlo. Cualquier otro sistema sería deficiente y habría maneras de ver el contenido sin tener "permiso".

    ResponderEliminar
  60. Hola Omoman me gustaria, saber si se puede adaptar para ver los ultimos post leidos por el usuario.

    Gracias de antemano

    ResponderEliminar
    Respuestas
    1. ¿Para que tú, administrador, veas lo que otros leyeron? Si es eso la respuesta es NO. Las cookies no las puedes ver tú porque quedan en el ordenador de cada visitante y tú no tienes acceso a ellas.

      Eliminar
  61. Hola, Oloman. Antes de nada, decir que he utilizado varios recursos de tu blog y que te estoy muy agradecido por compartirlos con nosotros. Quisiera hacerte una consulta. En relación a la ley de cookies, quisiera incluir un script que borre las cookies que no son estrictamente necesarias. Por ejemplo, mi blog guarda una cookie llamada "NID" relacionada con google y otra llamada "_ga" relacionada con una calculadora científica. No puedo impedir que se carguen (al menos, yo no sé cómo) pero me gustaría modificar la plantilla de mi blog para que se borren sin requerir ningún tipo de acción por parte del usuario; ni siquiera clickar un botón. ¿Es posible? ¿Cuál sería el código completo y dónde lo inserto? Gracias de antemano. Un saludo.

    ResponderEliminar
    Respuestas
    1. Yo de nuevo. Incluyo la dirección de mi blog por si ayuda: http://geogebra-bloga.blogspot.com.es/. He conseguido borrar una cookie llamada "jakinarazpena" (realmente no es esa la que quiero borar pero era para hacer la prueba de si funciona el código) que crea mi blog al pulsar el botón de aviso de cookies utilizando el siguiente código pero no hay forma de borrar las cookies "NID" y "_ga" (sustituyendo "jakinarazpena" por "NID" o "_ga", obviamente):

      <.script type='text/javascript'>
      delCookie("jakinarazpena");
      <./script >

      Intuyo que será por que se vuelven a crear después de borrarlas. Es decir, me da en la nariz que no estoy escribiendo el código en el lugar apropiado...

      Eliminar
    2. Asier, me pierdo un poco en el tema que dices, porque creo que desde tu blog podrás borrar las cookies que tu propio blog genere, pero sospecho que no podrá borrar las que crean otros sitios o servicios. Sería un poco raro que una web grabara cookies y que al visitar otra te las pudiera borrar. Ese de _ga casi seguro que es de Google Analitycs.

      Eliminar
  62. Gracias por responder, Oloman. Tiene sentido lo que dices sobre lo de borar cookies ajenas. Y sí, a mí también me da en la nariz que esa cookie llamada _ga es de Google analitycs. Al final lo que he hecho ha sido poner un "confirm" al principio del código html de mi blog con un aviso de cookies y no dejar entrar al usuario en el blog, si no acepta el uso de las cookies. ¿Hay alguna forma de saber si de esta forma carga alguna cookie antes de clickar 'Aceptar' o 'Cancelar'? Lo he intentado con F12 (Chrome) pero no deja mirar nada hasta haber clickado uno de los dos botones...

    ResponderEliminar
    Respuestas
    1. Creo que lo podrías comprobar mediante las utilidades de tu navegador. Borra cookies y luego entra en tu página. A continuación vas al apartado de Datos de navegación - Cookies y busca si hay alguna que haya generado tu página.

      Antes de borrar intenta localizar las que pudieras tener grabadas para ver cómo es.

      Eliminar
  63. Saludos, Oloman.
    Deseo agradecerte enormemente todos tus aportes, pues he aprendido mucho con ellos, eres como un profesor para mí.
    Pero tengo una gran duda que llevo mucho tiempo intentando resolver:
    He copiado dos cookies desde Internet Explorer en mi ordenador (dos archivos en formato .txt), ¿cómo podría insertar las dos cookies en mi blog de blogger para que a todo el que visite mi blog se le instalen esas dos mismas cookies?
    Cuando abro dichas cookies se muestra este texto:
    Texto Cookie 1:
    beruby_b_lLuis+Manuelberuby.com/1536223649715230383638144017590030382230*
    host_namehttp://es.beruby.comberuby.com/1600420435008030583395130102365530382230*
    Texto Cookie 2:
    beruby_session
    BAh7DDoPc2Vzc2lvbl9pZCIlMjU5MjE1YWEzZjY4YjU5ZTZhOWIyOWE5YWIyOTc0Nzk6FWNvb2tpZXNfYWNjZXB0ZWRUOg1wcm92aWRlciIMZGVmYXVsdDoNbGFuZ3VhZ2UiADoQX2NzcmZfdG9rZW4iMTluZzY3UWV4U2VIWlRDWUxxTXFUYUI1ZUI4SisxTnJQSkFvVld5QkFGYTQ9Ogl1c2VyaQNubAE6EGZpcnN0X3Zpc2l0VA%3D%3D--0aba62834846cac30985342a0e7e07445a2d03fbes.beruby.com/972829817241603059040144017590030382230*__utma
    193189049.336591412.1404594778.1404594778.1404594778.1es.beruby.com/1600118806502430529081143892789730382230*__utmb
    193189049.16.10.1404594778es.beruby.com/1600225058073630382234143892789730382230*__utmz
    193189049.1404594778.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
    es.beruby.com/160029611187230418943143892789730382230*auth_token8e090d5d851cfb83c7e0ca742717898175006431es.beruby.com/1536247463884830387862391337199630382229*aemenet1es.beruby.com/153632439206430388466392304401330382229*TD_valid_track1es.beruby.com/1600345674112030455655144033190030382230*

    Por favor, me encantaría que me ayudaras a instalar estas cookies en los ordenadores de todos los usuarios que visiten mi blog.
    En espera de tu respuesta, te saluda atentamente Luis Hidalgo.

    ResponderEliminar
    Respuestas
    1. Luis, de cookies sé lo justito. Es decir, lo que escribí aquí y poco más. Supongo que sólo es cuestión de que uses un script parecido (o igual) al que puse y que dónde yo puse "hola" en el ejemplo, tú escribas todo eso. Y luego igual con una cookie2

      Eliminar
    2. Muchísimas gracias por tu respuesta.
      Probaré lo que me comentas.
      Saludos cordiales de Luis.

      Eliminar