Categorias

Loop para receber todas as variáveis por POST em PHP

Loop para receber todas as variáveis por POST em PHP

Vamos ver uma forma muito rápida de receber todas as variáveis de um formulário, enviado por POST, na linguagem PHP. É uma pequena porção de código que poupará escrever muitas linhas de código.

Quem não se viu na horrível tarefa de receber vários dados de um formulário, atribuindo uma por uma todas as variáveis em PHP? Isso fazia-se com linhas como estas:

$nome = $_POST["nome"]; 
$idade = $_POST["idade"]; 
$cidade = $_POST["cidade"]; 

….

Se o formulário tivesse 10 elementos não seria muito chato escrever as 10 linha de código, mas se fossem 50 ou 100 a situação seria muito menos agradável. O código que vamos ver a seguir tornará problema mais fácil.

foreach( $_POST as $nome_campo => $valor)
{ 
   $comando = "$" . $nome_campo . "='" . $valor . "';"; 
   eval($comando); 
} 

Realiza-se um loop foreach que vai recorrendo cada um dos elementos POST. Em cada interação, vão-se acedendo a todos os elementos do POST e vão-se guardando em $nome_campo o nome do campo recebido para o formulário e em $valor, o valor que se tinha introduzido no formulário.

Antes cada um dos comandos que deveríamos ter escrito manualmente, agora é, na variável comando guardaremos uma linha de código PHP que realiza a declaração da variável do formulário dentro de PHP e a sua inicialização com o valor que se tinha escrito.

Na seguinte linha, onde está a função eval(), executa-se a sentença gerada no passo anterior. A função eval() de PHP executa o conteúdo de uma cadeia de caracteres como se fosse um comando de PHP.