Bucle para recibir todas las variables por POST en PHP

Una manera muy rápida de recibir todas las variables de un formulario, enviado por post. Mediante un recorrido genérico del array $_POST, en el lenguaje PHP.

Vamos a ver una manera muy rápida de recibir todas las variables de un formulario, enviado por post, en el lenguaje PHP. Les aseguro que es una pequeña porción de código que les ahorrará escribir un montón de líneas de código.

Quién no se ha visto alguna vez en la tediosa tarea de recibir un montón de datos de un formulario, asignando una por una todas las variables en PHP? Eso se hacía con líneas como ésta:

$nombre = $_POST[“nombre”];
$edad = $_POST[“edad”];
$ciudad = $_POST[“ciudad”];
….

Si el formulario tuviera 10 elementos no sería muy pesado escribir las 10 líneas de código, pero si fueran 50 o 100 la cosa sería mucho menos agradable. El código que vamos a ver ahora nos solucionará la vida en esos casos.

foreach($_POST as $nombre_campo => $valor){
$asignacion = “\$” . $nombre_campo . “='” . $valor . “‘;”;
eval($asignacion);
}

Se realiza un bucle foreach que va recorriendo cada uno de los elementos del post. En cada iteración, se van accediendo a todos los elementos del post y se guarda en $nombre_campo el nombre del campo recibido por el formulario y en $valor, el valor que se había introducido en el formulario.

Todo lo anterior se deduce de la primera línea. En las siguientes se compone en cada iteración, cada una de las asignaciones que deberíamos haber escrito manualmente. Es decir, en la variable asignación guardaremos una línea de código PHP que realiza la declaración de la variable de formulario dentro de PHP y su inicialización con el valor que se hubiera escrito.

En la siguiente línea, donde está la función eval(), se ejecuta la sentencia generada en el anterior paso. La función eval() de PHP ejecuta el contenido de una cadena de caracteres como si fuera una sentencia PHP.

Nota: La función eval() Evalua la cadena dada por code_str  como código PHP. Entre otras cosas, esto puede ser útil para almacenar código en un campo de texto de una base de datos para su ejecución posterior.

Existen algunos factores que hay que tener en cuenta cuando se usa eval(). Recuerde que la cadena pasada debe ser código PHP válido, incluyendo aspectos como la finalización de las sentencias con un punto y coma, ya que así el analizador no terminará en la línea que va después de eval(), y escapar de manera apropiada cosas en code_str. Para mezclar salida HTML y código PHP se puede usar una etiqueta de cierre de PHP para dejar el modo PHP.

Recuerde también que los valores de las variables dadas bajo eval() conservarán después estos valores en el script principal.

eval() devuelve NULL a menos que se llame a return en el código evaluado, en cuyo caso el valor pasado a return es devuelto. Si hay un error de análisis en el código evaluado, eval() devolverá FALSE y la ejecución del código posterior continuará normalmente.

Espero que les haya interesado este minúsculo, pero útil, código PHP.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *