Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera!
Estava maquinando um jeito de pegar todos os valores $_POST de uma vez, sem precisar ficar declarando "$nome = $_POST['nome']..." pra todos os campos de um formulário, mas filtrando todos eles um por um.
Nessa pesquisa encontrei a função extract(), mas ela já automatiza demais, não deixando espaço pro filtro.
Com a ajuda de um coleguinha montei isso aqui:
$array = array();
foreach ($_POST as $key=>$post)
{
$array[$key] = filter( $post );
}
Alguém tem uma idéia mirabolante? Sugestões, dúvidas? Vale a pena?
Num caso de muitos posts (acima de 30), valeria a pena?
Você pode usar as funções filter_...
Imagine que você tenha um formulário que enviará um POST com os campos id, name e email:
$data = $data = filter_var_array( $_POST , array(
'id' => FILTER_VALIDATE_INT,
'name' => FILTER_SANITIZE_STRING,
'email' => FILTER_VALIDATE_EMAIL
) );
if ( !$data[ 'email' ] ) echo 'O email enviado não é válido.';
Dessa forma, basta definir as variáveis e os tipo do filtro que será aplicado e seu POST será filtrado utilizando essas regras.
;)
Olha, você pode utilizar variável variável pra isto. Vejamos um exemplo:
foreach($_POST as $chave => $valor)
{
Carlos Eduardo