RSS
PHP

Validação de CPF com PHP

imprimir
Publicado em: 29/02/2008  |  PHP  |  Visualizações: 4.535  |  1 Comentário(s)
Validar CPF é uma operação muito importante na internet, devido ao grande número de fraudes eletrênicas. Por isso abaixo você verá como fazer essa validação em PHP.

Bons Estudos....


/*Primeiramente você precisará pegar o número do CPF digitado pelo usuário no form, para isso utilize $_POST[‘cpf’].*/

$cpf = $_POST[‘cpf’]; /*onde $_POST[‘cpf’] se refere ao nome do campo onde o usuário digitou o CPF*/

/*Agora vamos verificar se os dados do campo do CPF são apenas números*/

if(!is_numeric($cpf)) {
  $status = false;

/*caso os dados passados não sejam números, você poderá imprimir uma mensagem na tela informando ao usuário que o CPF digitado é inválido, por exemplo*/

echo "<script>alert('O número do seu CPF é inválido, tente novamente.'); window.history.go(-1); </script>n";

/*essa mensagem aparecerá na tela do usuário, e quando ele clicar em OK será redirecionado para a última página acessada, no caso, a página de cadastro.*/

}
else {

/*aqui ele verifica se todos os números digitados são iguais, caso sejam, faz o mesmo que na condição anterior*/

  if( ($cpf == '11111111111') || ($cpf == '22222222222') ||
   ($cpf == '33333333333') || ($cpf == '44444444444') ||
   ($cpf == '55555555555') || ($cpf == '66666666666') ||
   ($cpf == '77777777777') || ($cpf == '88888888888') ||
   ($cpf == '99999999999') || ($cpf == '00000000000') ) {
   $status = false;
echo "<script>alert('O número do seu CPF é inválido, tente novamente.'); window.history.go(-1); </script>n";
  }

  else {

/* se todos os testes anteriores retonaram true, então será iniciada a verificação dos números*/
   /*primeiro o script vai pegar o numero do dígito verificador*/


   $dv_informado = substr($cpf, 9,2);
   for($i=0; $i<=8; $i++) {
    $digito[$i] = substr($cpf, $i,1);
   }

   /*Agora será calculado o valor do décimo dígito de verificação*/

   $posicao = 10;
   $soma = 0;
   for($i=0; $i<=8; $i++) {
    $soma = $soma + $digito[$i] * $posicao;
    $posicao = $posicao - 1;
   }
   $digito[9] = $soma % 11;
   if($digito[9] < 2) {
    $digito[9] = 0;
   }
   else {
    $digito[9] = 11 - $digito[9];
   }

   /*Agora será calculado o valor do décimo primeiro dígito de verificação*/

   $posicao = 11;
   $soma = 0;

   for ($i=0; $i<=9; $i++) {
    $soma = $soma + $digito[$i] * $posicao;
    $posicao = $posicao - 1;
   }
   $digito[10] = $soma % 11;
   if ($digito[10] < 2) {
    $digito[10] = 0;
   }
   else {
    $digito[10] = 11 - $digito[10];
   }

  /*Nessa parte do script será verificado se o dígito verificador é igual ao informado pelo usuário*/

  $dv = $digito[9] * 10 + $digito[10];
  if ($dv != $dv_informado) {
   $status = false;

/*se o DV informado for diferente, então o sistema poderá apresentar uma mensagem como as anteriores avisando ao usuário sobre o CPF errado*/

echo "<script>alert('O número do seu CPF é inválido, tente novamente.'); window.history.go(-1); </script>n";
  }
  else
   $status = true;

/*Caso o resultado seja verdadeiro (true), então você deverá executar a operação principal, como por exemplo, cadastrar o usuário no banco de dados, e isso deverá ser feito dentro desse else.*/
  }
}


Bem pessoal, espero que tenham gostado.


Links Patrocinados

 interatividade
versão para impressão envie por e-mail 1 Comentário(s) comentários compartilhe
 
Preencha o formulário para comentar:
Nome:*

E-mail:* (não será exibido)

Site: (http://)

Comentário:*

Deseja receber os comentários no e-mail?

Anti-spam: (nova imagem)





Adriano

Publicado em: 21/05/2008 - 06:28

bem eu rodei esse codigo e parabens a maioria dos tutoriais sobre o assunto não explica com comentario cada linha de codigo, eu sou iniciante em php e não consegui rodar o codigo quando eu acessei a pagina pelo localhost já apareceu a caixa de mensagem cpf invalido digite novamente, como posso corrigir esse problema, já que sou iniciante e não sei como fazer. obrigado

 

Autor


Jonathan Lamim Antunes Jonathan Lamim Antunes
Web Designer e Programador Web (PHP/MySQL) e Desktop (Delphi). Além de professor de informática.
» Site do colunista

Todas as matérias de Jonathan Lamim Antunes



Links Patrocinados

Mais populares

Matérias relacionadas

© 2005 - 2008 - Oficina da Net - v 4.0 - É proibida a reprodução parcial ou completa do conteúdo deste site sem autorização por escrito. Resolução adequada: 1024x768px.