Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pirata_

[Resolvido] Desenvolvendo funções.. algumas s

Recommended Posts

Pessoal,

 

estou desenvolvendo uma função para fazer a validação de formulários, mas andei me perdendo um pouco nela, então gostaria de saber se alguém tem alguma dica para dar, ou se já fizeram algo parecido..

 

A idéia e parar de digitar para todo form:

 

if (empty($campo1) || empty($campo2))

 

e trabalhar com algo mais curto, ex:

 

valida($campo1,$campo2);

 

Alguém fez algo parecido ou tenha alguma sugestão para mandar?!

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só trabalhar com function (função), exemplo:

function validar($campo1,$campo2){
  if(empty($campo1) or empty($campo2)){
	print 'Preecha todos os campos.';
 }
}

validar($_POST['campo1'],$_POST['campo2']);

e assim por diante...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só trabalhar com function (função), exemplo:

function validar($campo1,$campo2){
  if(empty($campo1) or empty($campo2)){
	print 'Preecha todos os campos.';
 }
}

validar($_POST['campo1'],$_POST['campo2']);

e assim por diante...

Então, Alaerte..

eu estava fazendo isso.. mas neste caso se eu tivesse um form com 20 validações, eu teria que digitar 20 vezes o empty...

E se no form seguinte eu tenha apenas 10 campos pra validar, e minha funcao tem 20 ifs com empty, não acusaria sempre algo vazio ?

 

Eu começei a fazer com foreach e array, pra tentar sanar este problema, mas não consegui chegar a lugar nenhum..

 

Alguma sugestão?!

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

vejamos:

foreach($_POST AS $campo=>$valores){

$$campo=$valores;
if(empty($valores)){
  print 'existem campos em branco.';
  exit();
 }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado, Alaerte..

 

vou tentar amanhã utilizar este método.. quem sabe desenrolo!

:D

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, sei sim..

 

Já estou usando na verdade... É que mesmo assim não está 100% ainda..

(ou talvez não estou sabendo passar os dados)

 

Estou passando assim:

 

$form -> obrigatorio("$email,$login,$nome");

 

Ou tbm assim

 

$form -> obrigatorio(array("$email,$login,$nome"));

Compartilhar este post


Link para o post
Compartilhar em outros sites

_Pirata, há um tempo atrás eu também estava com esse problema e resolvi +/- assim:

 

Primeiro faço uma função gigante onde eu coloco todas as minhas validações ex.:

 

function valida($campo,$valor)
 {
	if($campo == "nome"){
	  if(empty($valor)){
		return "O campo $campo deve ser preenchido.";
	  }
	}
 }

 

Aí depois disso eu faço foreach em $_POST e vo jogando pra essa função, algo assim:

 

foreach ($_POST as $campo=>$valor){
	// trato os dados
	$valor = trim(strip_tags($valor));
	// mando pra função que valida
	$erro["erro_$campo"] = valida($campo,$valor);
}

Daí se eu tiver o campo nome por exemplo que estiver vazio eu vou ter num array $erro["erro_nome"] o erro que retornou lá da outra função.

 

Daí eu uso um count pra verificar se não tem erro e boa

 

if (count($erro) == 0) {
	// faço tudo aqui
}

 

 

----------------

Now playing: Frank Sinatra - Moon River

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa, mas aí neste caso você trabalha com 2 funçoes, sendo que qualquer novo form que você tenha ou novo campo a validar você tem que inserir na funcation geral, né ?

 

Acho que tem forma melhor de resolver isso..

Vou tentar e se coonseguinr algo bom, te aviso tbm!

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, é que no meu caso eu sempre preciso de uma validação específica pra cada caso... hehe..

 

Mas acho que se for geral daria pra mudar sim, but, to sem idéias no momento! o_O"

 

Qualquer novidade posta aí ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais o método é este ai, não sabe fazer a funçao a partir dai ?

 

Respondendo a sua pergunta, eu sei fazer sim, porém não rolou..

Olha só

 

classe:

 

// CLASSES

class form {
	
	function obrigatorio($a) {
	
			foreach($_POST AS $campo=>$valores){
			$campo=utf8_decode($valores);
			if(empty($valores)){
			  print 'existem campos em branco.';
			  exit();
			}
		}
	}
}



// Chamando a função..

$form	-> obrigatorio(array("$email,$login,$nome"));

Algum conselho?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu já te passei o código completo, bata tu fazer isso:

 

 

function validar(){
 foreach($_POST AS $campo=>$valores){

$$campo=$valores;
if(empty($valores)){
  print 'existem campos em branco.';
  exit();
}

}
}

não é preciso atribuir nada a ela, está toda dinâmica, a única coisa que tem que fazer é incluir a função na página e chama-la:

 

include('validar.php');
validar();

pronto, a programação irá pegar todos os posts automaticamente, quando for usar o valor de algum campo, não precisa colocar o

$_POST['campo']
apenas o nome do campo como var assim:
$campo

se caso algum campo estiver vazio ele irá acusar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu entendi..

 

É que tem um problema.. nem todos os campos do form são obrigatórios.. por isso que falei.

 

Mas vou tentar desenrolar algo aqui, e se conseguir aviso!

 

vlw mais uma vez

:)

 

[EDITANDO...]

 

Aeeeeeeeeeeeeeee, acho que consegui cara! ;)

 

function obrigatorio($campos) {
		   $campos = explode(",",$campos);
			foreach($_POST as $campo => $valor){
			if(empty($valor) && in_array($campo,$campos)){
				echo "O campo ".$campo." deve ser preenchido!";
				exit;		   
			}
		}
	}

E estou chamando pelo nome dos campos, e não pelas variáveis:

 

$form	-> obrigatorio("nome,email,login");

Se alguém tiver alguma observação, por favor, é só falar!

;)

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.