Ayuda con setcookie en Chromer

  • Autor Autor joaquinvu
  • Fecha de inicio Fecha de inicio
J

joaquinvu

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola buenas tardes.

Estoy generando un cookie para poner un mensaje que solo aparezca una ves en una web y el codigo es el siguiente.

<?php
setcookie('mensaje', 1 + $_COOKIE["mensaje"], time() + 365 * 24 * 60 * 60);
?>
<!-- <script>alert(<?php echo $_COOKIE["mensaje"]; ?>)</script> -->
<?php

if ($_COOKIE["mensaje"] < "2")
{
?>

<style>
#notify {
display: block;

</style>

<?php if ($currentSite == 1){?>
<div id="notify">
<a class="close_modal" href="#">X</a>
“Aquaworld Cancún tiene nuevos Términos de privacidad y Política de cookies, en vigencia a partir del 25 de mayo de 2018. Al cerrar este mensaje se compromete a regirse por los mismos”
</div>
<?php } else { ?>
<div id="notify">
<a class="close_modal" href="#">X</a>
“Aquaworld Cancun has new Privacy and Cookies Policy starting from May 25th, 2018. By closing this message you consent to our use of cookies in this device in accordance with our cookie policy unless you have disabled them.”
</div>
<?php } ?>
<?php } ?>

En Firefox Funciona perfectamente bien, pues solo se ve una vez y como el cookie incrementa su valor, ya no se visualiza nuevamente hasta que cadude o hasta que el usuario limpie su coache y borre los cookies del navegador.

el detalle es que en Google Chromer no funciona, no me lee la instrucción Setcookie y ni el valor.
 
1- la cookies no desaparecerá cuando caduca...ya que cada ves que entra le das una nueva fecha de caducidad.
2- el setcookie tiene que estar antes de todo codigo HTML, por lo que tiene que ser en la linea 1 (luego del <?php)
3- este valor $currentSite == 1... de donde sale?... osea si es por cookie ese valor esta influyendo tmb. es mas lo puedes poner
PHP:
if ($_COOKIE["mensaje"] < "2" && $currentSite == 1){ }
4- en chrome la cookie se crea con algun valor?...puedes ver la info del sitio web y veras las cookies
 
Pues puedes hacerlo fácil con otra cookie, es decir:
PHP:
if (!isset($_COOKIE["block_msg"])) {

	if (isset($_COOKIE["mensaje"])) {

		//AQUÍ LO QUE QUIERAS MOSTRAR
		echo "Solo me verás una vez :)"; //EJEMPLO

		// Y AHORA INSERTAMOS UNA COOKIE QUE NO VUELVA A MOSTRAR TU COOKIE.
		setcookie('block_msg', 1, time() + 365 * 24 * 60 * 60);

	}
	else {

		setcookie('mensaje', $_COOKIE["mensaje"], time() + 365 * 24 * 60 * 60);

	}
}
Prueba este código y verás que solo se mostrará una vez el mensaje.
 
Antes que nada, no puedes combinar PHP y JavaScript de esa manera, PHP se ejecuta antes de que la página renderice por lo que la alerta saldrá vacía.

Por otro lado, la opción que propone xasgay no es la más viable, enreda mucho el papagayo para algo tan simple.
 
Antes que nada, no puedes combinar PHP y JavaScript de esa manera, PHP se ejecuta antes de que la página renderice por lo que la alerta saldrá vacía.

Por otro lado, la opción que propone xasgay no es la más viable, enreda mucho el papagayo para algo tan simple.

Como lo harías tu? más simple? y que pueda entenderlo; evidentemente haciendo todo con javascript, podría hacer que funcionara en una sola sesión, pero imaginando lo que trata de hacer (Politica de cookies) la forma es correcta y funcional. Saludos
 
Atrás
Arriba