Criando variáveis dinâmicas em PHP a partir de um formulário

Publicado por César tinum da silva em 06/02/2009

[ Hits: 21.728 ]

 


Criando variáveis dinâmicas em PHP a partir de um formulário



Bom pessoal, aí vai uma dica de como pegar todos os valores de um formulário em uma página PHP sem ter que ficar declarando campo por campo, como a seguir:

$nome = $_POST['nome'];
$sexo = $_POST['sexo'];
$idade = $_POST['idade'];
etc...

Se o seu formulário tiver mais de 100 inputs, sua página PHP terá 100 linhas assim, o que torna-se pouco produtivo e proporciona muitas possibilidades de erro.

Uma opção muito prática para solucionar este problema é a estrutura "foreach" e a função "eval". O foreach percorrerá o array de dados que vem por post da página do formulário e o eval transformará estes dados em variáveis dinamicamente, como exemplo abaixo:

//Página que recebe os dados
<?
foreach($_POST as $key => $valor)
{
   /* Aqui se declara variável dinamicamente; pode ser um array de variáveis com conteúdo do array post onde cada posição contém o nome do campo do formulário e o valor será o valor do campo do formulário, ou criar várias variáveis isoladas como abaixo. */
   $temp = "\$".$key." = \"".$valor."\";";
   eval($temp);
}
//O que seria como se declarássemos assim
$key = $valor; //Onde key e nome do campo do form e valor o valor do campo.
//No caso de se criar um array seria assim:
$temp = "\$Dados['".$key."'] = \"".$valor."\";";
eval($temp);
//Assim todos os dados que vierem do formulário estarão no array Dados.

Bom, espero que ajude alguém.

Até mais e um abraço a todos.

Outras dicas deste autor

Python: Somando valores em um dicionário de strings

Ordenando dicionários em Python

Criando variáveis dinamicamente com Javascript

Leitura recomendada

CakePHP/HtmlHelper - Fazendo submit em formulário

Plugin com controle de acesso para CakePHP 3

Framework PHP

CakePHP - Trocar model no controller

Agendando execução de scripts PHP

  

Comentários
[1] Comentário enviado por cerqueirafabio em 06/02/2009 - 16:03h

Depois da uma olhadinha aqui: http://br2.php.net/import_request_variables

Acho que vai simplificar. =D

[2] Comentário enviado por mago_dos_chats em 06/02/2009 - 16:48h

legal, so que aqui fiz especificamente pra um form enviado por Post e nao pra qualquer array. =/

[3] Comentário enviado por everton3x em 05/05/2009 - 16:07h

Ñão seria mais fácil fazer:

foreach($_POST as $name => $value){
$$name = $value;
}

[4] Comentário enviado por mago_dos_chats em 07/05/2009 - 11:41h

everton3x, estou mostrando um jeito, logico que existem outros n modos, cada um usa o que quiser.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts