Fala galera!
Essa semana apresentarei um script simples que tem por finalidade fazer a validação do CPF digitado. É aconselhável fazer, primeiramente, a validação em JavaScript e depois, por motivos de segurança, fazer essa verificação lá no servidor utilizando o PHP, isso porque, é muito simples de se ignorar uma validação em JavaScript e com isso nosso sistema acaba se tornando vulnerável.
PS: Nesse artigo, estarei apresentando apenas a versão do script em PHP.
Vamos lá:
Arquivo: cpf.php
|
<? <html> |
Screenshot:

Comentários:
01. Quando o formulário for enviado, verificamos se o dados digitados são numéricos, para isso usamos a função is_numeric.
02. Verifiquei se o CPF informado possui valores repetido, fiz isso manualmente, se alguém tiver alguma sugestão melhor é só enviar. Fiz isso, pq se digitarmos o CPF 11111111111 ou qualquer outro com numeração repetida vai dar verdadeiro, portanto, coloquei aquele IF para verificar e bloquear esse pequeno problema.
03. Para terminar
verificamos os dígitos verificadores e enviamos o resultado
da nossa validação para a tela do usuário.

|
DOWNLOAD |
|
Clique AQUI e faça o download do script. |
Não deixe de nos enviar críticas ou sugestões para o próximo assunto, afinal a coluna é de vocês.
Boa semana a todos!
paulo cesar da silva moreira
Copiei do jeito que foi postado o artigo, e quando abro o arquivo no navegador ele aparece a tela mas com erros dizendo:
Notice: Undefined index: verOK in C:\sites\cpf_verifica.php on line 3
e
Notice: Undefined index: verOK in C:\sites\cpf_verifica.php on line 91
mesmo assim, ele consegue verificar normalmente o cpf, mas como posso tirar essa mensagem de erro que aparece?
Marcos Dill
nao existe o arquivo
http://www.imasters.com.br/web/colunistas/php/79/php_artigo79.zip
FelipeTv
ME AJUDE.. PRECISO D FAZER ISSO EM VISUAL BASIC. NET?
erivelto carvalho
o script está rodando normalmente o problema é que só aparece a mensagem de CPF inválido em todos os cpf's que digito.help please.
matheus coxa
como faço o calculo do cpf usando o programa pascal?
tenho um trabalho a entregar com urgencia.
se puder me ajudar me responda.
obrigado desde já.
matheus
Diego Botelho Martins
Júlio teu script está show, postei aí algumas adaptações e melhorias fiz sobre ele... Abraço
public function validarCPF($strCPF)
{
try
{
// Retira . e - do CPF:
$strCPF = str_replace(".","", $strCPF);
$strCPF = str_replace("-","", $strCPF);
// Verifica se o CPF é constituído de números repetidos de 11111111111 até 99999999999
for($i = 0; $i <= 9; $i )
{
$strRepetido = "";
if($strCPF == str_pad($strRepetido, 11, $i)) return false;
}
// Obtém o dígito verificador
$intDVInformado = substr($strCPF, 9,2);
for($i = 0; $i <= 8; $i )
{
$arDigito[$i] = substr($strCPF, $i, 1);
}
//Calcula o valor do 10º dígito de verificação
$intPosicao = 10;
$intSoma = 0;
for($i = 0; $i <= 8; $i )
{
$intSoma = $arDigito[$i] * $intPosicao;
$intPosicao = $intPosicao - 1;
}
$arDigito[9] = $intSoma % 11;
$arDigito[9] = ($arDigito[9] < 2) ? 0 : 11 - $arDigito[9];
//Calcula o valor do 11º dígito de verificação
$intPosicao = 11;
$intSoma = 0;
for($i = 0; $i <= 9; $i )
{
$intSoma = $arDigito[$i] * $intPosicao;
$intPosicao = $intPosicao - 1;
}
$arDigito[10] = $intSoma % 11;
$arDigito[10] = ($arDigito[10] < 2) ? 0 : 11 - $arDigito[10];
// Verifica se o DV calculado é igual ao informado
$intDV = $arDigito[9] * 10 $arDigito[10];
return ($intDV != $intDVInformado) ? false : true;
}
catch(Exception $e)
{
throw new ClienteException($e->getMessage());
}
}
Jucelho Pereira
esses seus códigos não sei o que acontece!
por que quando salvo eles na pasta "hdocs" e abro com o navegador
os códigos php aparecem!
você deve estar esquecendo alguma coisa!
se é para ensinar tente fazer isso direito por favor!
isso é sobre a apostila
"cadastro de clientes"
se você conseguir ajeita-la me manda
por email por favor
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.