Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/01/2016, 02:46
nelbe
 
Fecha de Ingreso: enero-2016
Ubicación: Málaga
Mensajes: 1
Antigüedad: 8 años, 11 meses
Puntos: 0
Deserializar un objeto en concreto

Buenos días,
es la primera vez que escribo por aquí, lo primero saludaros y lo segundo gracias por echarme una mano con este problemilla.

Bien, el problema que tengo es el siguiente,

Estoy realizando un programa (un ejercicio) de venta de entradas de coches, en el que además de venir tres zonas definidas por defecto, se pueden ir añadiendo tantas como el usuario quiera.
Bueno, las que vienen por defecto, las guardo en variables de sesion diferentes y las puedo usar de forma independiente siempre que quiera, es decir, les puedo aplicar un método de forma indepediente a cada una.
Pero el problema viene cuando quiero aplicar un método a una de las zonas que crea el usuario mediante formulario, ya que no sé como hacerlo.

Les dejo mi código por si pueden ayudarme a arreglarlo.
Gracias!

************************************************** ***************


<?php
session_start();
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>

<?php
include_once 'Entradas.php';

if (!isset($_SESSION['zonas'])) {
$_SESSION['zonas'] = array(
'salaPrincipal' => serialize(new Entradas('Sala Principal', 1000)),
'compraVenta' => serialize(new Entradas('Compra-Venta', 200)),
'vip' => serialize(new Entradas('Zona Vip', 25))
);
}

$salaPrincipal = unserialize($_SESSION['zonas']['salaPrincipal']);
$compraVenta = unserialize($_SESSION['zonas']['compraVenta']);
$vip = unserialize($_SESSION['zonas']['vip']);

?>

<p>Crea una nueva zona</p>
<form action="#" method="post">
<fieldset>
Nombre de la zona: <input type="text" name="nombreZona">
Numero de entradas: <input type="number" min="1" name="tamanoPizza">
<button type="submit" value="pedir" name="nuevaZona">Crear Zona</button>
</fieldset>
</form>
<?php
$i = 1;
if (isset($_POST['nuevaZona'])) {
$i++;
$nombreZona = $_POST['nombreZona'];
$tamanoPizza = $_POST['tamanoPizza'];

$auxNombreZona = str_replace(' ', '', $nombreZona); //elimina los espacios en blanco

$_SESSION['zonas'][$auxNombreZona] = serialize(new Entradas($nombreZona, $tamanoPizza));
}

foreach ($_SESSION['zonas'] as $p) {
$auxZona = unserialize($p); //Antes de usar los objetos
echo $auxZona;
}

//En este foreach es donde intento aplicar el método venta(), pero claro, se aplica a todas las zonas que hay y yo quiero conseguir que se aplique a una en concreta.

foreach ($_SESSION['zonas'] as $p) {
$auxZona = unserialize($p);
$auxZona->venta(20);
echo $auxZona;
}

?>
</body>
</html>