Foros del Web » Programando para Internet » PHP »

Problemas para actualizar cookies

Estas en el tema de Problemas para actualizar cookies en el foro de PHP en Foros del Web. Hola a todos: Soy nuevo en el foro y, aviso por adelantado, programador (si es que se me puede llamar así) autodidacta. Por lo tanto, ...
  #1 (permalink)  
Antiguo 18/01/2007, 10:16
 
Fecha de Ingreso: enero-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses
Puntos: 0
Problemas para actualizar cookies

Hola a todos:

Soy nuevo en el foro y, aviso por adelantado, programador (si es que se me puede llamar así) autodidacta. Por lo tanto, los códigos que iré publicando como ejemplos o dudas serán muy bastos para la mayoría de vosotros. Pero en fin, eso es lo que hay.´

Bueno, ahí va mi primera dudilla:
Hace un par de años me monté una tiendecilla virtual en pHp y MySQL. Los scripts estaban basados en un carrito muy simple que encontré en internet pero con el tiempo la fui adaptando a mis necesidades y me ´funcionaba bastante bien.

Tras una año sin actividad por problemas con el servidor, ahora estoy intentando volver aponerlo todo en marcha. La base del asunto era adjudicar una cookie a cada visitante según:

function GetCartId()
{
// This function will generate an encrypted string and
// will set it as a cookie using set_cookie. This will
// also be used as the cookieId field in the cart table

if(isset($_COOKIE["cartId"]))
{
return $_COOKIE["cartId"];
}
else
{
// There is no cookie set. We will set the cookie
// and return the value of the users session ID
session_start();
setcookie("cartId", time(), time() + ((3600 * 24) * 30));
return session_id();
}
}

Así es que, cada visitante tenía una cookie llamada cartId con un valor que corresponde al time() de su entrada en la web.

Los productos se van almacenando en una tabla en MySQL y el valor de la cookie (cartId) en uno de los campos de esa tabla. Cuando el cliente termina la compra, se identifica y los datos se pasan a otra tabla en la que ya se almacenan los pedidos en firme y se incluye ya la identidad del cliente en lugar de cartId.

El problema es que el carro no se reinicia. Entiendo que, para ello, bastaría con actualizar el valor de esa cookie. Para eso, al confirmar la compra, se carga la siguinte página:

session_start();
setcookie("cartId", '', time() - ((3600 * 24) * 30));
echo '<META HTTP-EQUIV="Refresh" CONTENT="1;URL=carrito">';

Y hasta aquí puedo leer. No se porqué, a veces se actualiza y otras no. No se si depende del servidor, del ordenador que estoy usando o qué.

En fin , imagino que es algo bastante común, pero estoy encallado en eso. Cualquier ayuda será bienbenida.

Un saludo pa tos,


Daniel
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 22:41.