Foros del Web » Programando para Internet » PHP »

sesiones

Estas en el tema de sesiones en el foro de PHP en Foros del Web. hola a todos, tengo en una pagina los siguiente: $select = $_POST['proveedor']; $ide = $_POST['ideart']; $clave = $_POST['cveart']; $nombre = $_POST['nomart']; $cantidad = $_POST['canart']; $marca ...
  #1 (permalink)  
Antiguo 31/01/2006, 22:50
 
Fecha de Ingreso: julio-2005
Mensajes: 78
Antigüedad: 18 años, 9 meses
Puntos: 0
Pregunta sesiones

hola a todos, tengo en una pagina los siguiente:

$select = $_POST['proveedor'];
$ide = $_POST['ideart'];
$clave = $_POST['cveart'];
$nombre = $_POST['nomart'];
$cantidad = $_POST['canart'];
$marca = $_POST['cvemar'];
$precio = $_POST['precom'];
$imagen= $_POST['nomimg'];

$_SESSION['contador'] = $_SESSION['contador'] + 1;
$i= $_SESSION['contador'];
$compra[md5($i)]=array('proveedor'=> $select,'identificador'=> $ide, 'clave'=>$clave, 'nombre' => $nombre, 'cantidad' => $cantidad, 'marca' =>$marca, 'precio' => $precio, 'imagen' => $imagen);
$_SESSION['compra']=$compra;
$compra = $_SESSION['compra'];
header("location:frmcom.php?".SID);

ese header me regresa a la pagina en donde ingreso datos y los almaceno en $compra[md5($i)].

Después en otra página quiero obtener los todo lo que se ha almacenado de la siguiente manera;

$compra = $_SESSION['compra'];

foreach ($compra as $salida)
{
reset($compra);
echo $salida['proveedor'];
echo $salida['identificador'];
echo $salida['clave'];
echo $salida['nombre'];
echo $salida['cantidad'];
echo $salida['marca'];
echo $salida['precio'];
echo $salida['imagen'];

}

Y solo puedo desplegar el ultimo registro que ingrese y no todos, que esta mal, espero que alguien me ayude. SALUDOS
  #2 (permalink)  
Antiguo 01/02/2006, 05:53
 
Fecha de Ingreso: enero-2006
Mensajes: 22
Antigüedad: 18 años, 3 meses
Puntos: 0
Me parece que el problema está en que no cargas la v.a $compra con el valor compra de la sesión antes de trabajar con ella.
La linea $compra = $_SESSION['compra']; debe estar antes de $compra[md5($i)]=array('proveedor'=> $select,'identificador'=> $ide, 'clave'=>$clave, 'nombre' => $nombre, 'cantidad' => $cantidad, 'marca' =>$marca, 'precio' => $precio, 'imagen' => $imagen);

Salu2.
  #3 (permalink)  
Antiguo 01/02/2006, 07:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Como no indicas el código completo que usas .. debo preguntarte "donde" (si es que lo usas) estás usando la función session_Start() .. la cual debes usarla en todos los scripts que creen variables de sesión y en los que pretendas acceder a esos valores.

Tampoco comprendo mucho para que usas un contador (numérico) y luego lo codificas en MD5()? para usarlo de indice en ese array. Recuerda que la sesión ya es única para el cliente que las crea .. no es necesario que hagas eso.

De hecho yo haría:
Código:
// Inico uso sesiones
session_start();
// continuar o crear array compra si no existe
if (!empty($_SESSION['compra'])){
    $compra=$_SESSION['compra'];
} else {
    $compra=array();
}

// tomo tus variables del formulario ...
$select = $_POST['proveedor'];
$ide = $_POST['ideart'];
$clave = $_POST['cveart'];
$nombre = $_POST['nomart'];
$cantidad = $_POST['canart'];
$marca = $_POST['cvemar'];
$precio = $_POST['precom'];
$imagen= $_POST['nomimg'];

// Añado tu array al último elemento .. usando [] se hace automáticamente:
$compra[]=array('proveedor'=> $select,'identificador'=> $ide, 'clave'=>$clave, 'nombre' => $nombre, 'cantidad' => $cantidad, 'marca' =>$marca, 'precio' => $precio, 'imagen' => $imagen);

// O bien puedes usar (OJO .. una u otra opción NO LAS dos!):
array_push($compra, array('proveedor'=> $select,'identificador'=> $ide, 'clave'=>$clave, 'nombre' => $nombre, 'cantidad' => $cantidad, 'marca' =>$marca, 'precio' => $precio, 'imagen' => $imagen));

// asigno el array a la sesión para "propagarlo"
$_SESSION['compra']=$compra;

// redirecciono y paso el SID por el URL (sería mejor en cookies, más seguro pero menos versatil si no se permite uso de cookies).
header("location:frmcom.php?".SID);
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 20:31.