Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2008, 05:56
jesusjj
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 17 años, 3 meses
Puntos: 2
Problema con 'foreach'

Buenos días, se me ha planteado un problema a la hora de crear variables con los valores recibidos de formulario, a través de un bucle 'foreach', metido en una función.

El problema resulta al realizar el bucle llamando a la función, que no genera las variables; mientras que si hago el bucle desde fuera, no da problemas.

Copio el código por si alguien me puede ayudar.

Muchas gracias.

Código PHP:
# -> Creación de varibles de formulario

function VariablesFormulario () {
    foreach (
$_POST as $campo => $valor) {
        
$asignacion "$" $campo "='" $valor "';";
        eval(
$asignacion); 
    }
}

// ------------------------------------


# -> Opción 1: No funciona

VariablesFormulario ();


#-> Opción 2: Funciona

        
foreach ($_POST as $campo => $valor) {
            
$asignacion "$" $campo "='" $valor "';";
            eval(
$asignacion);
        }
    
        
$asunto "Consulta WEB";
        
$mensaje "<span class='producto'>Nombre: </span>" .$nombre"<br />";
        
$mensaje .=    "<span class='producto'>Apellidos: </span>" .$apellidos"<br />";
        
$mensaje .= "<span class='producto'>Empresa: </span>" .$empresa"<br />";
        
$mensaje .= "<span class='producto'>Mail: </span><a href='mailto:".$mail."'>" .$mail"</a><br />";
        
$mensaje .= "<span class='producto'>Consulta: </span>" .$consulta"<br />";
    
        echo 
$mensaje;
                
//        mail($para, $asunto, $mensaje, $headers);
//        Header("Location:index.php?pag=9&contacto=confirma");
//        exit();
    

Puede que sobre alguna llave, o algún otro símbolo, pero he copiado/pegado, porque viene de un "if". Por otra parte he dejado sin comentar las dos opciones, para que se vean bien, en el código uso una u otra.

La segunda opción crea las variables, pero la primera no.

Aprovecho también a comentar que he puesto en el mensaje los saltos de línea
Código HTML:
<br /> 
, porque no me 'funcionan' los
Código PHP:
"\r\n" 
.
Saludos.