Duda a la hora de crear cookies

  • Autor Autor JetLagFox
  • Fecha de inicio Fecha de inicio
J

JetLagFox

Gamma
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Buenas,

Estoy intentando comprender un poco la forma de uso de las COOKIES en PHP. Lo estoy intentando implementar en mi web simplemente para que aparezca un mensaje de aviso de que estoy usando cookies en la web, pero una vez aceptado el mensaje no quiero que aparezca cada vez que se carga la página. Es por ello que estoy usando cookies. El problema que me encuentro, es que si es la primera vez que entro, me dice que la variable no existe. Una vez aceptado el mensaje, el valor de la Cookie pasa a un valor, y entonces no hay problema.

¿Tengo que iniciar la COOKIE de alguna forma? Le estoy dando vueltas, pero si la inicializo, ¿no estaría machando el valor que tiene en el servidor? Me estoy haciendo un lío imagino, pero no lo acabo de entender.

Para saber si tengo que mostrar el mensaje o no, cuando se acepta el mensaje, a través de JS entrego la COOKIE:

Insertar CODE, HTML o PHP:
document.cookie = "leido_cookie=Si";

Y con PHP, para mostrar o no el mensaje en función de su valor tengo esto:

Insertar CODE, HTML o PHP:
<?php if (htmlspecialchars($_COOKIE["leido_cookie"]) != "Si"): ?>
  <div id='ocultardiv'>
    <p>Utilizamos "cookies" para ofrecerte una mejor experiencia de servicio. Al navegar o utilizar nuestros servicios, aceptas el uso que hacemos de las "cookies".</p>
       <div style="width:auto;margin-top:15px;">
          <input type="checkbox" name="checkbox" id="cookies_aceptar" value="value" onclick='ocultar()'>
          <label id="label_cookies" for="cookies_aceptar">Aceptar</label>
          <a class="mas_info_coookies" href="#">Más información</a>
        </div>
  </div>
<?php endif; ?>

Funcionar funciona, y en la web no me aparece ese mensaje de que la variable no existe, pero imagino que eso puede dar lugar a problemas (de rendimiento o el que sea).
 
Podrías usar la función isset(), para saber si la variable está seteada, de otra forma das por entendido que es la primera vez que entra y muestras el cartel...
 
Podrías usar la función isset(), para saber si la variable está seteada, de otra forma das por entendido que es la primera vez que entra y muestras el cartel...

Gracias, no se me había ocurrido. El problema es que tal cual lo tengo al cerrar el navegador debería de reestablecerse los valores, puesto que no he puesto fecha de vencimiento. Si cierro el navegador y vuelto a entrar, no me muestro el mensaje, pero si pongo un echo:

HTML:
echo $_COOKIE['leido_cookie'];

Si hago un var_dump de $_COOKIE ni siquiera aparece:
HTML:
array(4) {
  ["_ga"]=>
  string(27) "GA1.1.1756289546.1508009730"
  ["_gid"]=>
  string(27) "GA1.1.1286949340.1508009730"
  ["PHPSESSID"]=>
  string(26) "nsfbadco2vi0ncpc1o9f0hh2pq"
  ["_gat"]=>
  string(1) "1"
}

Me dice que no existe la variable.

EDITO: Nada ya está, que la condicional la estaba poniendo al revés.

Lo único que me quedaría sería aumentar el tiempo en el que se guarda la cookie. ¿suele ser un año?
 
Última edición:
EDITO: Nada ya está, que la condicional la estaba poniendo al revés.

Lo único que me quedaría sería aumentar el tiempo en el que se guarda la cookie. ¿suele ser un año?

Genial!

En cuanto al segundo punto no te sabría decir... Muchas duran hasta que se cierra el navegador, pero otras pueden durar años. Eso depende de lo que tu consideres necesario!
 
Genial!

En cuanto al segundo punto no te sabría decir... Muchas duran hasta que se cierra el navegador, pero otras pueden durar años. Eso depende de lo que tu consideres necesario!

He encontrado la forma de hacerlo. Lo agrego por si a alguien le puede resultar útil:

Insertar CODE, HTML o PHP:
function ocultar(){
  $('#ocultardiv').hide(600);
  //creamos la cookie;
  expires = new Date();
  expires.setTime(expires.getTime() + 31536000000);
  document.cookie = "leido_cookie=Si;expires=" + expires.toUTCString();
}
 
También puedes hacerlo usando localStorage y te evitas el problema de colocar el tiempo.
 
Dar aviso que al ingresar a un lugar estas usando cookies es como decir que al ingresar a un centro comercial te avisan que estan usando electricidad.

Lo que sí deberías considerar es un enlace para las políticas de privacidad que informe que destino o uso se le dará a la información que se recolecta del usuario.
 
Dar aviso que al ingresar a un lugar estas usando cookies es como decir que al ingresar a un centro comercial te avisan que estan usando electricidad.

Lo que sí deberías considerar es un enlace para las políticas de privacidad que informe que destino o uso se le dará a la información que se recolecta del usuario.

Eso era antes; las leyes cambian y desde hace algunos años el propietario de una página web debe de informar al visitante que la página web hace uso de cookies.

en españa ya es obligatorio y si no se le informa al visitante pueden llegar a haber multas.

Respecto al tema

acá te dejo un ejemplo que funciona perfectamente :encouragement:

politica-cookies
 
Sé que hay leyes que obligan a informar sobre el uso de los datos personales, pero no creo que digan algo acerca del uso de las cookies, porque se sobre entiende.
No me imagino a páginas como Facebook haciendo eso y sabes que hacen eso millones de veces y a millones de usuarios, sin embargo tienen una kilométrica página de política de privacidad Data Policy.

Por eso puse en el mensaje que lo que NO debe faltar es la política de privacidad.

Y si hay una ley de esa naturaleza que aplica multas por incumplirlas , pues me parece que no tiene mucho sentido, ya sabemos que hay leyes y leyes.
 
Última edición:
Atrás
Arriba