Foros del Web » Programando para Internet » PHP »

Crear Var. Sessión durante X minutos

Estas en el tema de Crear Var. Sessión durante X minutos en el foro de PHP en Foros del Web. Tengo una tienda web donde quiero que la variable de sesión que guarda los artículos que va seleccionando el cliente dure X minutos; llegado dicho ...
  #1 (permalink)  
Antiguo 29/06/2010, 09:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Pregunta Crear Var. Sessión durante X minutos

Tengo una tienda web donde quiero que la variable de sesión que guarda los artículos que va seleccionando el cliente dure X minutos; llegado dicho tiempo si el cliente no ha realizado la compra el carrito se vaciará.

Quiero evitar que se generen multiples variables de sesión que no son eliminadas dado que el cliente puede que no haya finalizado la compra.

¿Se puede crear una variable de sesión en php durante X minutos sin que el tiempo de dicha variable de sesión afecte al resto de las variables de sesión creadas???

Un saludo

Grácias
  #2 (permalink)  
Antiguo 29/06/2010, 15:12
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 2 meses
Puntos: 46
Respuesta: Crear Var. Sessión durante X minutos

Hola cocodj69.

creo que esto te puede ayudar.
http://php.net/manual/es/session.configuration.php
http://mx.php.net/manual/es/function.ini-set.php

Suerte.
  #3 (permalink)  
Antiguo 29/06/2010, 15:15
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Crear Var. Sessión durante X minutos

usando otra cookie, ya que es la cookie la que determina la caducidad; en frameworks como symfony existen las denominadas variables de sesión flash, que internamente los filtros del framework vacían, pero al terminar las peticiones.
  #4 (permalink)  
Antiguo 29/06/2010, 15:16
 
Fecha de Ingreso: junio-2010
Mensajes: 8
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Crear Var. Sessión durante X minutos

Creo que eso se haria con COOKIES y no SESSIONES.
  #5 (permalink)  
Antiguo 30/06/2010, 02:12
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Pregunta Respuesta: Crear Var. Sessión durante X minutos

Grácias por las respuestas!

Según lo visto en internet los carritos se crean bien con variables de sesión o bien con tablas. Pero no aparece nada de implementar el carrito con cookies...

¿¿que tendría que crear una cookie con el nombre de la variable de sesión y si ha pasado dicho tiempo, eliminar la variable de sesión????

Grácias
  #6 (permalink)  
Antiguo 30/06/2010, 02:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Crear Var. Sessión durante X minutos

es igual, al parecer que no se han fijado en esto: cookies o sesiones, son variables al final...

entonces es así de simple, puedes usar lo que quieras... y la implementación sobre la vida de dicha información varía, por eso hay que leer el manual... ;)

por ejemplo, la sesión se configura de forma mas persistente...
http://www.php.net/manual/en/features.sessions.php

mientras que las cookies pueden ser definidas por cierto tiempo, etc...
http://www.php.net/manual/en/features.cookies.php

pero como digo al inicio, al final son variables y trabajar con ellas es igual... mas no idéntico!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 30/06/2010, 02:47
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear Var. Sessión durante X minutos

Cita:
Iniciado por pateketrueke Ver Mensaje
es igual, al parecer que no se han fijado en esto: cookies o sesiones, son variables al final...

entonces es así de simple, puedes usar lo que quieras... y la implementación sobre la vida de dicha información varía, por eso hay que leer el manual...
Ya he leido los manuales. Y se el tiempo de vida dependiendo de las variables.

Lo que no tengo claro es lo que he dicho antes: Puesto que tengo implentado el carrito en una variable de sesión, me pregunto como limitar el tiempo de vida sin que afecte al resto de las variables de sesión!!!! Es por eso que dije si estaría bien crear una cookie con el nombre de la variable de sesión y comprobar el tiempo de vida de esta.... ¿Sería correcto actuar de dicha forma?

Grácias!!
  #8 (permalink)  
Antiguo 30/06/2010, 03:16
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Crear Var. Sessión durante X minutos

Cita:
Iniciado por cocodj69 Ver Mensaje
Ya he leido los manuales. Y se el tiempo de vida dependiendo de las variables.

Lo que no tengo claro es lo que he dicho antes: Puesto que tengo implentado el carrito en una variable de sesión, me pregunto como limitar el tiempo de vida sin que afecte al resto de las variables de sesión!!!! Es por eso que dije si estaría bien crear una cookie con el nombre de la variable de sesión y comprobar el tiempo de vida de esta.... ¿Sería correcto actuar de dicha forma?

Grácias!!
pues bueno, no hay nada malo en tu idea... ¿porque la pregunta?

solamente que no es necesario guardar nada para hacer referencia a tu carrito:
Código PHP:
if ( ! isset($_COOKIE['actividad_del_carro'])) unset($_SESSION['datos_del_carro']); 
ahora, correcto es un término ambiguo y realmente relativo, si te funciona... entonces es correcto para ti?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 30/06/2010, 03:30
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear Var. Sessión durante X minutos

Cita:
Iniciado por pateketrueke Ver Mensaje
pues bueno, no hay nada malo en tu idea... ¿porque la pregunta?
Simplemente por que es lo que se me ha ocurrido y no sabía si sería idóneo!!

Cita:
Iniciado por pateketrueke Ver Mensaje
solamente que no es necesario guardar nada para hacer referencia a tu carrito:
Código PHP:
if ( ! isset($_COOKIE['actividad_del_carro'])) unset($_SESSION['datos_del_carro']); 
Exacto. Es lo que pensaba y he hecho :)

Código PHP:
Ver original
  1. if (!isset($_SESSION["cart"])){
  2.     $_SESSION["cart"] = new Cart();
  3.     setcookie('cart','cart',time()+1800);  
  4. }else{
  5.     if(!isset($_COOKIE['cart'])){  
  6.         unset($_SESSION["cart"]);
  7.         $_SESSION["cart"] = new Cart();
  8.         setcookie('cart','cart',time()+1800);
  9.     }  
  10. }

Cita:
Iniciado por pateketrueke Ver Mensaje
ahora, correcto es un término ambiguo y realmente relativo, si te funciona... entonces es correcto para ti?
A mi me funciona, pero al mismo tiempo creo que el código es correcto. No diría que es una solución alternativa o temporal. Se que se puede hacer también con tablas, pero este método es rápido y funciona!

Te parece correcto?

Grácias
  #10 (permalink)  
Antiguo 30/06/2010, 03:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Crear Var. Sessión durante X minutos

yo veo genial tu implementación, sin embargo puedes hacerla mas simple:
Código PHP:
session_start();
if ( ! isset(
$_SESSION['foo']) OR ! isset($_COOKIE['foo']))
{
    
$_SESSION['foo'] = new Bar();
    
setcookie('foo'1time() +1800);   

al fin y al cabo ambos bloques hacían lo mismo...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 30/06/2010, 03:40
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear Var. Sessión durante X minutos

Muchas Grácias.

Un pequeño apunte: No sería conveniente destruir la variable de sesión justo antes de crearla de nuevo, por eliminar 'basura'???

Código PHP:
Ver original
  1. if ( ! isset($_SESSION['foo']) OR ! isset($_COOKIE['foo']))
  2. {
  3.      unset($_SESSION['foo']);
  4.     $_SESSION['foo'] = new Bar();
  5.     setcookie('foo', 1, time() +1800);  
  6. }
  #12 (permalink)  
Antiguo 30/06/2010, 03:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Crear Var. Sessión durante X minutos

no es necesario borrar una variable cuando de inmediato la asignas, vamos.. que la basura la borra automáticamente PHP!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 30/06/2010, 04:07
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear Var. Sessión durante X minutos

Ok. Grácias :)

Un último apunte: Imagina que quedan 2 minutos para que expire el carrito y el cliente acaba de acceder al checkout ( página des de donde va a introducir los datos de envio, tarjeta de crédito, etc... ). Sería necesario pues aumentar el tiempo de la cookie llegado ese puento para evitar que se pierdan los datos mientras se realiza dicho proceso de compra, verdad??? O sería mejor llegado este punto guardarlo en una tabla temporal de la DDBB para evitar que se pierdan los artículos seleccionados mientras de realiza el proceso de pago y confirmación.

Un saludo
  #14 (permalink)  
Antiguo 30/06/2010, 04:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 15 años, 11 meses
Puntos: 2534
Respuesta: Crear Var. Sessión durante X minutos

yo opino que depende de la misma actividad del usuario, si realmente esta haciendo algo eventualmente le daría mas tiempo... ;)

o también como piensas, divides la lógica en "pasos", una ves superada la selección de productos almacenas todo y continúas
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 30/06/2010, 04:56
 
Fecha de Ingreso: marzo-2008
Mensajes: 220
Antigüedad: 16 años
Puntos: 0
Respuesta: Crear Var. Sessión durante X minutos

Val. Muchas Grácias por todo

Ya decidiré a ver que método uso.

Un Saludo

Etiquetas: durante, minutos, var
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 07:34.