Foros del Web » Programando para Internet » PHP »

cookies

Estas en el tema de cookies en el foro de PHP en Foros del Web. estoy comprobando que las cookies están activadas en el navegador y símplemente, lo que hago es crear una cookie y comprobar si está o no ...
  #1 (permalink)  
Antiguo 26/02/2012, 06:38
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
cookies

estoy comprobando que las cookies están activadas en el navegador y símplemente, lo que hago es crear una cookie y comprobar si está o no creada.
El problema viene cuando compruebo (debe tardar unos segundos en crearse o algo) y php pasa a la siguiente instrucción, comprobar si la cookie está creada. Como tarda tiempo, pues al final php asume que no está creada y me devuelve false.
Copio el código:
Código PHP:
setcookie("Test_Cookies"1time() + (30) );
if(isset(
$_COOKIE['Test_Cookies']))
        
$_SESSION['Activate_Cookies'] = True;
    else
        
$_SESSION['Activate_Cookies'] = False
Hay algo que pueda hacer para solucionar este problema?
Gracias de antemano!
  #2 (permalink)  
Antiguo 26/02/2012, 06:44
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: cookies

creo que es porque el True es true... lo he probado asi y funciona;

Código PHP:
Ver original
  1. setcookie("Test_Cookies", 1, time() + (30) );
  2. if(isset($_COOKIE['Test_Cookies']))
  3.         echo 'creada';
  4.     else
  5.         echo 'no creada';
  #3 (permalink)  
Antiguo 26/02/2012, 06:51
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cookies

Cita:
Iniciado por jesus1975 Ver Mensaje
creo que es porque el True es true... lo he probado asi y funciona;

Código PHP:
Ver original
  1. setcookie("Test_Cookies", 1, time() + (30) );
  2. if(isset($_COOKIE['Test_Cookies']))
  3.         echo 'creada';
  4.     else
  5.         echo 'no creada';
pero la primera vez te sale creada? porque a mi la primera vez me sale no creada, es más, lo he metido a un console.log de firebug y me sale concrétamente para true->1 y para false no me sale valor, le he puesto manualmente 0.
La cuestión es que no crea esa cookie a tiempo antes de ser evaluada por la condición
  #4 (permalink)  
Antiguo 26/02/2012, 06:54
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: cookies

Si la crea correctamente, de echo he probado a eliminarla, actualizar y me sale no creada.. cuando vuelvo a actualizar me aparece creada...

A mi me funciona bien.. Ten encuenta que la estas creando y solo dura 30 segundos..
  #5 (permalink)  
Antiguo 26/02/2012, 07:00
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cookies

Cita:
Iniciado por jesus1975 Ver Mensaje
Si la crea correctamente, de echo he probado a eliminarla, actualizar y me sale no creada.. cuando vuelvo a actualizar me aparece creada...

A mi me funciona bien.. Ten encuenta que la estas creando y solo dura 30 segundos..
Crearla la crea perféctamente, pero antes de que se cree, a mí me evalúa la condición, es decir, tengo que refrescar la página de nuevo para que me salga que sí está creada. A los 30 segundos, se destruye y me toca volverla a crear, con lo que me volverá a evaluar si está creada antes de que se cree y como no le ha dado tiempo a crearse, pensará que no está creada.
pruébalo tu mismo aquí =)
http://devstarlight.com
arriba a la izquierda tienes una caja que es recordar usuario. La primera vez, no te la muestra, la segunda sí. Si tienes firebug instalado, además podrás ver en el log cuando te aparece un blanco y cuando un 1
  #6 (permalink)  
Antiguo 26/02/2012, 07:13
Avatar de jesus1975  
Fecha de Ingreso: febrero-2012
Ubicación: Valencia
Mensajes: 54
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: cookies

Código PHP:
Ver original
  1. if(isset($_COOKIE['Test_Cookies'])){
  2.         echo 'creada';
  3. } else  {  
  4.         setcookie("Test_Cookies", 1, time() + (30) );
  5.         echo 'no creada';
  6. }

Cuando imprimo la primera vez me aparece NO CREADA y entonces creo la cookie.... cuando actualizo despues me aparece como CREADA.
He inhabilitado las cookies y siempre me aparece como NO CREADA.
  #7 (permalink)  
Antiguo 26/02/2012, 07:19
starlightphp
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: cookies

Cita:
Iniciado por jesus1975 Ver Mensaje
Código PHP:
Ver original
  1. if(isset($_COOKIE['Test_Cookies'])){
  2.         echo 'creada';
  3. } else  {  
  4.         setcookie("Test_Cookies", 1, time() + (30) );
  5.         echo 'no creada';
  6. }

Cuando imprimo la primera vez me aparece NO CREADA y entonces creo la cookie.... cuando actualizo despues me aparece como CREADA.
He inhabilitado las cookies y siempre me aparece como NO CREADA.
entiendo... aunque mi pregunta iba mas enfocada a la resolución del problema sin refrescar, es decir, de un tirón. La solución que he encontrado ha sido crear una cookie antes de cargar este fichero php, con lo que doy tiempo para que se genere la cookie antes de que se compruebe.
  #8 (permalink)  
Antiguo 26/02/2012, 07:23
Avatar de alivan  
Fecha de Ingreso: agosto-2010
Mensajes: 16
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: cookies

Las cookies deben ser enviadas por el navegador. Si comprueban justo al crearlas si existen les dirá que no existen pues el navegador no ha enviado las cookies. Sin embargo, al recargar sí que les dirá que están creadas pues el navegador sí las ha enviado esta vez.

Etiquetas: cookies
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:47.