Foros del Web » Programando para Internet » PHP »

array dentro de cookie?

Estas en el tema de array dentro de cookie? en el foro de PHP en Foros del Web. es posible introducir un array detro de un cookie? algo asi como esto: Código PHP: <?php  if(isset( $_POST [ 'submit' ])){      $code =  $_POST ...
  #1 (permalink)  
Antiguo 11/07/2010, 19:56
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 15 años, 2 meses
Puntos: 10
array dentro de cookie?

es posible introducir un array detro de un cookie?
algo asi como esto:

Código PHP:
<?php 
if(isset($_POST['submit'])){
    
$code$_POST['code'];
    
$pedido = array($code$_POST['talla'], $_POST['cant']);
    if(isset(
$_COOKIE[$code])){
        
setcookie($code$pedidotime()+3600);
    }else{
        
setcookie($code$pedidotime()+3600);
    }
}
print_r$_COOKIE[$code]);
?>
estoy haciendo un sistema de "añadir al carrito" sencillo y para cada producto necesito un codigo, una talla y la cantidad que la ingresa el usuario desde un formulario.

Se puede usar un array dentro de un cookie? o existe alguna otra forma de lo grar lo que necesito?
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #2 (permalink)  
Antiguo 11/07/2010, 20:14
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: array dentro de cookie?

No, pero puedes serializar el array para almacenarlo como cadena de texto y al recuperarlo, lo deserializas:

Código PHP:
Ver original
  1. $pedido = array($code, $_POST['talla'], $_POST['cant']);
  2. $pedido = serialize($pedido);
  3. var_dump($serialize); // string(n) "a:n:{...;}";
  4.  
  5. // Luego recuperas asi:
  6. $pedido = unserialize($_COOKIE[$code]);

Saludos.
__________________
eZakto™
  #3 (permalink)  
Antiguo 11/07/2010, 22:34
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 15 años, 2 meses
Puntos: 10
Respuesta: array dentro de cookie?

intente con este codigo
Código PHP:
<?php 
if(isset($_POST['submit'])){
    
$code$_POST['code'];
    
$pedido = array($code$_POST['talla'], $_POST['cant']);
    
$pedido serialize($pedido);
    
var_dump($pedido);
        
setcookie($code$pedidotime()+3600);
}
?>
pero cuando intento recuperar los datos con este codigo no recupero ningun dato

Código PHP:
<?php 
$var
=unserialize($_COOKIE['510853']);
print_r($var);?>
No me regresa ningun dato.
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #4 (permalink)  
Antiguo 11/07/2010, 22:48
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 16 años, 4 meses
Puntos: 5
Respuesta: array dentro de cookie?

Pues qué te imprime el var_dump?
__________________
eZakto™
  #5 (permalink)  
Antiguo 11/07/2010, 23:49
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 15 años, 2 meses
Puntos: 10
el var_dump me da esto:
Cita:
"a:3:{i:0;s:6:"511103";i:1;N;i:2;s:1:"1";}"
Cita:
Iniciado por eZakto Ver Mensaje
Pues qué te imprime el var_dump?
el var_dump me da esto:
Cita:
"a:3:{i:0;s:6:"511103";i:1;N;i:2;s:1:"1";}"
estoy creando un pequeño sistema de "añadir al carrito" usando cookies pero tengo problemas para recuperar la informacion de esa cookie. para crear las cookies ocupo este codigo:

Código PHP:
<?php 
if(isset($_POST['submit'])){
    echo 
"echole";
    
$code$_POST['code'];
    
$pedido = array($code$_POST['talla'], $_POST['cant']);
    
$pedido implode("-"$pedido);
    
var_dump($pedido);
        
setcookie($code$pedidotime()+3600);
}
?>
y para intentar recuperar los datos ocupo este:
Código PHP:
<?php
$var
=$_COOKIE['510853'];
echo 
$var;
?>
En que me estoy equivocando?
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador

Última edición por GatorV; 12/07/2010 a las 19:37

Etiquetas: cookie
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 16:12.