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();
}
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 />
Código PHP:
"\r\n"
Saludos.