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
, porque no me 'funcionan' los
.
Saludos.