Foros del Web » Programando para Internet » PHP »

Set cookie

Estas en el tema de Set cookie en el foro de PHP en Foros del Web. Buenas; Me veo obligado a usar la frase tan "poco común" en foros del web: "Es la primera vez que uso..." para decir que es ...
  #1 (permalink)  
Antiguo 22/07/2003, 02:51
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 21 años, 10 meses
Puntos: 0
Set cookie

Buenas;

Me veo obligado a usar la frase tan "poco común" en foros del web:

"Es la primera vez que uso..." para decir que es la primera vez que uso cookies en una tienda virtual, antes usaba sesiones y me iba de maravilla, pero ahora estoy pasando una web de ASP a PHP y toda va con cookies, así que les pido ayuda:

Lo 1º es guarda valores en una cookie con arrays, lo hago del siguiente modo y pido que me corrijan si está mal -
Código PHP:
if (isset($compra["$id_producto"])) {
        
setcookie ("compra[$id_producto]",$unidades,time()+3600);
    } else {
        
setcookie ("compra[$id_producto]",time()+3600) + $unidades;
    } 
que, como os digo, aun no sé si me va a funcionar. Y el 2º paso es la lectura de las mismas que no tengo ni la más remota idea de como pasar lo que tengo en ASP a PHP, si me echan un cable... -
Código PHP:
<%
FOR 
EACH Producto IN Request.Cookies ("Compra")
IF 
Request.Cookies ("Compra")(Producto) <> "" THEN
Tabla
.Filter "Cod_Producto='" Producto "'"
%> 
Muchísimas gracias

PD: No tiene por qué ser igual, la cosa es que pueda leer los valores.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 22/07/2003, 07:19
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Solo por curiosidad, ¿por que no usas las sesiones de PHP?

Sobre tu codigo, no soy ningun experto en cookies (apenas las uso), pero en tu primer codigo tienes un error bastante obvio. En el else estas dando el valor de time()+3600 a la cookie. Si lo que quieres es actualizar el valor seria algo como:
Código PHP:
if (isset($compra["$id_producto"])) {
        
setcookie ("compra[$id_producto]",$unidades,time()+3600);
    } else {
        
setcookie ("compra[$id_producto]",$compra[$id_producto] + $unidades,time()+3600);
    } 
Si te fijas en www.php.net/setcookie el segundo parametro de la funcion siempre es el valor que le quieres asignar.

Para el codigo ASP, si te fijas $compra es un array. Podrias recorrerlo con foreach. Con el Table.filter lo tienes mas dificil, ya que en PHP no hay el objeto recordset. Tendrias que crear el WHERE de la consulta y ejecutarla.

Por cierto, tal como esta asumo que tienes register_globals a on, lo que puede no ser muy recomendable (paranoias de seguridad). Si lo pones register_globals a off, debes usar $_COOKIE['compra'] en lugar de $compra.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 14:30.