PHP - Carrito de pedidos con php

 
Vista:
sin imagen de perfil
Val: 36
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

Carrito de pedidos con php

Publicado por Gustavo (14 intervenciones) el 28/12/2020 07:30:27
Hola, espero se encuentren bien, mi problemilla es...

Estoy desarrollando un carrito de pedidos y lo gestiono mediante sesiones de php, es decir $_SESSION['carrito']; ahí guardo los datos cuando se le da al botón de "pedir", también al de eliminar para que elimine el último elemento del array, ¿Cuál es mi problema?.

Supongamos que tengo dos sesiones diferentes abiertas en diferentes dispositivos, posterior a eso en las dos sesiones se procede a realizar un pedido que si no existe ninguno, este se guarda en la posición 0 del arreglo y si ya existe la sesión carrito, se irán agregando más elementos al arreglo.

Pasa que .. al eliminar algunos elementos del arreglo (un producto) de una sesión que les comenté en uno de los dispositivos... Cuando voy a la otra sesión a eliminar el mismo producto, este me da error, supongo que es porque estoy eliminando la posición en la que se encuentra...

Entonces, mi pregunta es... Cómo puedo eliminar un producto de mi sesión carrito sin que afecte a la sesion carrito de otras sesiones (cuando digo otras sesiones me refiero a otros usuarios logueados, todos estos tienen su respectivo $_SESSION['carrito']).


Tenía pensado en hacer una tabla en mi base de datos que sea "carrito" y ahi se ingresen y eliminen constantemente los datos que el usuario quiera gestionar en el carrito y cuando el usuario cierre sesión, esta ejecutará un delete con respecto al usuario logueado

Si alguien pudiese ayudarme estaría muy agradecido o decirme si es que no debo de trabajar con sesiones ara este caso o es que estoy haciendo una mala práctica de programación
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Carrito de pedidos con php

Publicado por joel (1269 intervenciones) el 28/12/2020 08:18:59
Hola Gustavo, no entiendo muy bien tu problema...

Si un usuario tiene su variable de sesión, otro usuario no puede intervenir en el contenido de esa otra variable de sesión, ya que por defecto, cada variable de sesión va vinculada con el PHPSESSIONID que si tu no lo indicas por código, cada uno es diferente... es decir: Si haces cualquier cosa en una variable de sesión de un usuario no tiene que afectar a las variables de sesión de otro usuario.

Ten en cuenta, que las variables de sesión por defecto solo duran 30 minutos si no hay actividad, y si el mismo usuario cambia de dispositivo, no tendrá los productos en el carrito. Es una mala idea guardar el carrito en un variables de sesión o cookie.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil

Carrito de pedidos con php

Publicado por Gustavo (2 intervenciones) el 28/12/2020 13:59:27
Oh gracias, quiere decir que estoy haciendo algo mal en mi lógica.

Entonces me recomiendas hacer una tabla en mi base de datos que se llame "carrito" por ejemplo y que esa esté en constante actividad por si el usuario agrega un producto o lo elimina ??

Esa tabla contendría id_carrito, id_producto, id_cliente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Carrito de pedidos con php

Publicado por Mauro (1036 intervenciones) el 28/12/2020 19:57:58
Hola Gustavo:

El problema que veo es que al tener dos sesiones activas en diferentes dispositivos de algún modo debes poder vincularlas.

Desde el punto de vista del web server, cada cliente (navegador) es una sesión diferente, con lo cual, el hecho de que sea el mismo usuario el que está navegando desde su PC y su móvil en forma simultánea debés manejarlo vos.

Una forma podría ser utilizar como dices una tabla en tu db en lugar de la sesión, lo que debes tener cuidado es cuándo eliminas todo (Es decir, cómo manejas el cierre de la "sesión".
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Carrito de pedidos con php

Publicado por Gustavo (2 intervenciones) el 28/12/2020 20:08:36
Si, ya estoy haciendo el carrito con la BD mejor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar