Me parece que es porque $_SESSION['maquinas2'] NO es un array. Fijate que haces
Código PHP:
if ($temp >0){ $maquinas = $temp;}// Filtro el formulario anterior
Y despues a $_SESSION['maquinas2'] le asignas el mismo valor de $maquinas, pero $maquinas no es un array.
Proba hacer:
Código PHP:
if ($temp >0){ $maquinas[] = $temp;}// Filtro el formulario anterior
Tambien puede ser que en el foreach del error te falto un '$'.
Debe ser
Código PHP:
foreach ($_SESSION['maquinas2'] as $name => $valor)
Creo que es eso...
Saludos!