Tiempo de expiración de cookie PHP

D

Buenas a todos ;)
Estoy con un problemilla sobre Cookies.
Tengo que mostrar el tiempo restante que le queda a una cookie, para ello según he visto no existe función en PHP, como cojones podría hacerlo?
Os explico, tengo dos archivos uno es un formulario el cual al apretar enviar, redirecciona a la otra página la cual debería mostrar el tiempo restante de la cookie.
ARCHIVO 1

spoiler

ARCHIVO 2.

spoiler

Alguien sabe por donde van los tiros? He leído algo de almacenar el tiempo en otra cookie, pero ni idea de cómo.
Un saludete

Tunnecino

En teoría el tiempo de duración de la Cookie viene fijado por la configuración de php,

http://php.net/manual/es/function.session-set-cookie-params.php

Como bien has dicho, lo más fácil es almacenar los tiempos en otra Cookie, por que no creo que sea demasiado sencillo acceder al tiempo restante de vida de una, al menos en php.

2 respuestas
D

#2 Y sabes el como podría hacerse eso? (Almacenarlo en otra cookie?)

eXtreM3

No sé si es la mejor solución, pero servirá seguro:

  • Cuando setees la cookie guardas en una variable session la hora a la que la creas y su duración.
  • En el archivo2.php simplemente coges la hora actual y le restas la hora de creación de la cookie, ahí tienes el tiempo que le queda de vida.

edit: nah, esto solo sirve mientras tenga activa la sesión...

2 respuestas
E

#1 como bien ha dicho #2 el tiempo viene fijado por PHP, pero creo que lo que tú quieres hacer es que que caduque la sesión con la cookie.

Lo que puedes hacer es lo que ha dicho #4, de hecho, yo no conozco ninguna otra forma

1 respuesta
Merkury

Esto que voy a decir es una tonteria muy grande, pero allá va: si es una información muy importante el tiempo que le queda a la cookie, por qué no la almacenas en una BBDD y a correr?

Yo si tuviese que hacerlo, identificaria las cookies del usuario con un hash y lo almacenaría en el local storage y luego verificaria si esa cookie sigue existiendo o tengo que crujirmela, etc.

Como ya he dicho, es una tonteria muy grande.

Por cierto el tiempo que dura una cookie puede ser seteado cuando la creas:

 setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
2 respuestas
Tunnecino

Pues, como te ha dicho #6, tienes varias opciones, algo guarrillas, pero no hay otra, a no ser que uses otro sistema, en vez de Cookies, usar por ejemplo http://redis.io

1 respuesta
D

#4 #5 #6 #7Solucionado, y ninguna de esas formas me valía. ( Al guardarlo en variable a la hora de mostrarlo vuelve a coger el time actual)
La solución es guardar el tiempo de la cookie en otra cookie, y leerla y hacer el calculo desde otro documento con una función en mi caso. (SI ALGUIEN NECESITA PEGO CÓDIGO)
No podían utilizarse BD, ni sessiones.
Resumen:
Doc1.

spoiler

Doc2.

spoiler

De esta manera sabemos el tiempo que lleva en ejecución, no cuanto le queda. Nadie ha averiguado la forma exacta pero me sirve.
Gracias compis!

RaymaN

Para evitar usar otra cookie puedes guardarlo todo en la original en formato json.

1 respuesta
D

#9 Podía utilizarse solo PHP, gracias igualmente!

Usuarios habituales