Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel Filho

Tratamento de erros do formulário

Recommended Posts

Eu tenho um formulário que chama um arquivo php para tratar os dados.

O que eu quero é que quando o tratamento indicar erro nos dados inseridos, o formulário volte com as correções necessárias para se fazer.

 

formulhario:

<form method="post" action="controle/cadastroUsuario.class.php">
<input type="hidden" name="cadastraUsuario" value="1" />
<label>Nome: </label> <input type="text" name="usuario_nome" /><br />
<label>Sobrenome: </label> <input type="text" name="usuario_sobrenome" /><br />
<label>Data de nascimento: </label> <input type="text" id="usuario_nascimento" name="usuario_nascimento" /><br />
<label>CPF: </label> <input type="text" name="usuario_cpf" /><br />
<input type="submit" src="" value="Enviar" />
</form>

 

tratamento:

<?php

if($_SERVER['REQUEST_METHOD'] == 'POST') {
	if($_POST['cadastraUsuario'] == '1') {
		$usuario_nome = $_POST['usuario_nome'];
		$usuario_sobreNome = $_POST['usuario_sobrenome'];
		$usuario_nomeCompleto = "$usuario_nome"." "."$usuario_sobreNome";
		$usuario_nascimento = $_POST['usuario_nascimento'];
		$usuario_cpf = $_POST['usuario_cpf'];
	}
}

$cadastroUsuario = new cadastroUsuario;
$cadastroUsuario->_verificaNome($usuario_nomeCompleto);
$cadastroUsuario->_verificaIdade($usuario_nascimento);
$cadastroUsuario->_validaCPF($usuario_cpf);

class cadastroUsuario {

	var $status_cpf = 1;
	var $multiplicacao = 0;
	var $soma = 0;
	var $i;
	var $jp = 10;
	var $js = 11;

	function _verificaNome($usuario_nomeCompleto) {
		if(strlen($usuario_nomeCompleto) > 7) {
			if(!is_numeric($usuario_nomeCompleto)) {
				return false;
			}
		}
	}

	function _verificaIdade($usuario_nascimento) {

		$dia = substr($usuario_nascimento, 0, -8);
		$mes = substr($usuario_nascimento, 3, -5);
		$ano = substr($usuario_nascimento, 6);
		$anoAtual = date('Y');
		$mesAtual = date('m');
		$diaAtual = date('d');

		if(($anoAtual - $ano) < 18) {
			return false;
		} else {
			if($mes > $mesAtual) {
				return false;
			} else {
				if($dia >= $diaAtual) {
					return false;
				} else {
					return true;
				}
			}
		}

	}

	function _validaCPF($usuario_cpf) {

		if(is_numeric($usuario_cpf)) {
			if(strlen($usuario_cpf) == 11) {
				for($this->i=0; $this->i<=11; $this->i++) {
					if($usuario_cpf == '$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i'.'$this->i') {
						$this->status_cpf = 0;
					}
				}
			} else {
				$this->status_cpf = 0;
			}
		} else {
			$this->status_cpf = 0;
		}

		if($this->status_cpf != 0) {
			for($this->i=0; $this->i<=8; $this->i++) {
				$this->multiplicacao = $usuario_cpf[$this->i] * $this->jp;
				$this->soma = $this->soma + $this->multiplicacao;
				$this->jp--;
			}
			$this->resto = $this->soma % 11;
			if($this->resto < 2) {
				$this->primeiroDigito = 0;
			} else {
				$this->primeiroDigito = 11 - $this->resto;
			}
			if($this->primeiroDigito != $usuario_cpf[9]) {
				return false;
			} else {
				$this->soma = 0;
				for($this->i=0; $this->i<=9; $this->i++) {
					$this->multiplicacao = $usuario_cpf[$this->i] * $this->js;
					$this->soma = $this->soma + $this->multiplicacao;
					$this->js--;
				}
				$this->resto = $this->soma % 11;
				if($this->resto < 2) {
					$this->segundoDigito = 0;
				} else {
					$this->segundoDigito = 11 - $this->resto;
				}
				if($this->segundoDigito != $usuario_cpf[10]) {
					return false;
				} else {
					return true;
				}
			}
		} else {
			return false;
		}

	}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Daniel Filho :)

 

Então ao verificar algum erro no meu formulário, eu aponto para uma página chamada de erro.php, onde nela exibe uma menssagem dizendo que os campos do formulário não estão corretamente preenchidos, e ela após X segundos volta novamente ao meu formulário assim:

 

Coloque onde voce trata a verificação do seu formulário, caso ele não esteja preenchido.

 

else{
echo "<script>window.location='http://www.seu.site.com.br/erro.php'</script>";
}

 

Na página erro.php

 

coloque entre as tag's

<head>
<meta http-equiv="refresh" content="3; URL=http://www.seu.site.com.br/formulario.php" />
</head>

 

content é onde voce coloca os segundo antes de dar um refresh na página e ir para o seu formulário neste caso após 3 segundos.

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.