Foros del Web » Programando para Internet » PHP »

Carrito, registro y sesiones

Estas en el tema de Carrito, registro y sesiones en el foro de PHP en Foros del Web. Estoy tratando de hacer un carrito de compras en el que el visitante cuando entra al sitio puede rrcorrer los productos y agregarlos al carrito, ...
  #1 (permalink)  
Antiguo 18/11/2006, 08:54
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 21 años, 2 meses
Puntos: 0
Carrito, registro y sesiones

Estoy tratando de hacer un carrito de compras en el que el visitante cuando entra al sitio puede rrcorrer los productos y agregarlos al carrito, hasta ahi todo bien, guardo el id del producto en una sesion y mientras el visitante recorre el sitio siempre puede ir viendo los productos que ha ido seleccionando, pero el tema es que cuando quiere terminar la compra es necesario que primero se registre y ahi esta mi problema no se como seguir, porque para poder continuar, necesitaria entonces, segun mi razonamiento, iniciar otra sesion con el id del nuevo usuario y entonces que hago con la sesion que mantenia el id de los productos que se iban seleccionando, la verdad es que estoy un poco perdida en este funcionamiento, si alguien me da una idea de como seguir o de como tendria que manejar mejor este proceso se los agradeceria muchisimo. Gracias.

Les muestro un poco como lo tengo armado hasta entonces:

En el index, el catalogo de productos, con un link para poder agregar el producto al carrito:
Código PHP:
<?
//coneccion a la BD y demas
//seleccion de la tabla y seleccion de productos
$sql "SELECT * FROM $Tabla";
// Ejecuto la consulta
$result mysql_query($sql);
//y el bucle con los resultados obtenidos
while ($rs mysql_fetch_array($result)){
?>
<td><?=$rs[producto];?>
<a href="c_agregar.php?producto=<?=$rs['id_prod'];?>" class="lnkCarrito">Agregar al pedido</a></td>
<? }?>
y este es el script que uso para que agrege el producto:
Código PHP:
<?
include_once('c_include.php');

$destino $_SERVER['HTTP_REFERER'];
if (
$destino != "") {
  
$producto_nuevo $_GET['producto'];
  
$cantidad_productos count($_SESSION['productos']);
  
$_SESSION['productos'][$cantidad_productos] = $producto_nuevo;
  
header('Location: ' $destino);
}
else {
  echo 
'ERROR de entrada a esta página!!!<br> <a href="index.php" class="lnkCarrito">Volver</a>';
}
?>
y este es el de c_include.php:
Código PHP:
<?
session_start
();
if(!isset(
$_SESSION['productos'])){
 
$_SESSION['productos'] = array();
}
?>
espero que se haya entendido. Gracias
  #2 (permalink)  
Antiguo 18/11/2006, 10:44
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Hola sinalias! Creo que te puede funcionar poniendole nombre a las sessiones y asi identificandolas. La funcion para poner nombre a una sesión és: session_name('nombre'); Las sesiones se identifican por el Id que contengan (són valores alfanuméricos). Tendrias que crear una variable de session que te guardara el carrito y otra variable session que guardara los datos del usuario. Luego podrias utilizar esas 2 variables para lo que necesites.
Un saludo
  #3 (permalink)  
Antiguo 19/11/2006, 12:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 197
Antigüedad: 21 años, 2 meses
Puntos: 0
podrias ampliar un poco mas el tema?

porque no entiendo mucho como manejar dos sesiones a la ves, una que guarde el id de los productos seleccionados y a la ves la sesion del usuario recien registrado.

tendrias algun ejemplo donde pudiera fijarme como funciona?

Gracias
  #4 (permalink)  
Antiguo 19/11/2006, 17:46
 
Fecha de Ingreso: noviembre-2006
Mensajes: 437
Antigüedad: 18 años
Puntos: 3
Manejar dos sesiones es lo mismo que manejar una. Me explico, para crear dos variables de sesion tendrias que hacer:
session_start();
$_SESSION['carrito'] = array(con los datos del carrito);
$_SESSION['login'] = array(con los datos del login);
luego puedes ir manejando esas dos sesiones segun te convenga. Sintiendolo mucho no dispongo de ningun ejemplo con el que poder aclararte más.
Espero que te sirva de ayuda lo comentado.
Un saludo!
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 12:09.