Validação automática de dados
Lista de erros
Gosto de guardar uma lista com informações sobre erros, para fazer processamentos posteriores com essas informações. Por exemplo, pode-se apresentar uma lista de avisos no corpo das páginas e marcar os campos inválidos de formulários.
function erro($id = NULL, $tipo = NULL, $dados = NULL)
{
static $erros = array();
// a) devolver a primeiro erro, e retira-o da lista
if($id == NULL)
{
return array_shift($erros);
}
// b) adicionar entrada na lista de erros
array_push($erros, array($id, $tipo, $dados));
}
Validação de dados
Antes de fazer alterações na base-de-dados a partir de entradas dos utilizadores, deve-se validá-las. Em vez de construir várias linhas com instruções condicionais, prefiro indicar essas informações num vector (array) e colocá-lo como argumento numa função que faça automaticamente a validação. Mostro um trecho que procura campos obrigatórios que estão vazios:
foreach($inf_dados as $k=>$v) {
// verificar se há campos obrigatórios vazios
if( array_key_exists('obrigatorio', $inf_dados[$k]) &&
$inf_dados[$k]['obrigatorio'] == true && empty($in_dados[$k]) )
{
erro('obrigatorio-' . $k, 'warning');
++$no_erros;
}
} // if
// ...
} // foreach
Ao chamar essa função, são removidas automaticamente as entradas que não pertencem ao contexto, usando o vector para validação. Por isso, na chamada da função, posso usar como argumento a variável $_POST (com todos os valores dos formulários com métodos de envio post), o que poupa trabalho.
// remover entradas que não existem em $inf_dados
foreach( $in_dados as $k=>$v ) {
if( !array_key_exists($k, $inf_dados) )
{
unset($in_data[$k]);
} // if
} // foreach
Mais tarde irei enviar um novo artigo mais aprofundado sobre o tema.




Comentários Recentes
http://www.geocitie
eu respeito muito seu
Concordo plenamente com o comentário acima,