Validação CPF
valida CPF incluindo os pontos se é válido ou não. Pelo menos comigo, nunca deu pau.
Data | Autor | Changelog | Download |
---|---|---|---|
26/11/2001 1:58pm | Rodrigo Mendes Soares | - | Versão 1.0 |
Desculpem mas isto não é um erro é apenas uma questão de interpretação. Tudo vai depender da formatação dos números caso seja 000000000-00 dá certo. isto depende do form que manda a variavel.
08/04/2004 2:41pm
(~20 anos atrás)
Não funcionou de prima comigo
eu observei que o cpf contém 11 dígitos e não 12
portanto na segunda soma o array cpf[10] irá corresponder ao segundo numero do dígito e não ao primeiro como deveria pois todo array começa pelo [0], arrumei esta parte assim:
$soma2 = ($cnpj[0] * 11) +
($cnpj[1] * 10) +
($cnpj[2] * 9) +
($cnpj[3] * 8) +
($cnpj[4] * 7) +
($cnpj[5] * 6) +
($cnpj[6] * 5) +
($cnpj[7] * 4) +
($cnpj[8] * 3) +
($cnpj[9] * 2);
$resto = $soma2 % 11;
$digito2 = $resto < 2 ? 0 : 11 - $resto;
return (($cnpj[9] == $digito1) && ($cnpj[10] == $digito2));
eu observei que o cpf contém 11 dígitos e não 12
portanto na segunda soma o array cpf[10] irá corresponder ao segundo numero do dígito e não ao primeiro como deveria pois todo array começa pelo [0], arrumei esta parte assim:
$soma2 = ($cnpj[0] * 11) +
($cnpj[1] * 10) +
($cnpj[2] * 9) +
($cnpj[3] * 8) +
($cnpj[4] * 7) +
($cnpj[5] * 6) +
($cnpj[6] * 5) +
($cnpj[7] * 4) +
($cnpj[8] * 3) +
($cnpj[9] * 2);
$resto = $soma2 % 11;
$digito2 = $resto < 2 ? 0 : 11 - $resto;
return (($cnpj[9] == $digito1) && ($cnpj[10] == $digito2));
08/04/2004 2:37pm
(~20 anos atrás)
comigo nao funcionou, mas, se funcionou com todo munto ate agora, eu fiz algo de errado, soh nao sei o q... olha o codigo:
=================================
function verificaCPF($cpf) {
if (strlen($cpf) <> 12 )
return 0;
$soma1 = ($cpf[0] * 10) +
($cpf[1] * 9) +
($cpf[2] * 8) +
($cpf[3] * 7) +
($cpf[4] * 6) +
($cpf[5] * 5) +
($cpf[6] * 4) +
($cpf[7] * 3) +
($cpf[8] * 2);
$resto = $soma1 % 11;
$digito1 = $resto < 2 ? 0 : 11 - $resto;
$soma2 = ($cpf[0] * 11) +
($cpf[1] * 10) +
($cpf[2] * 9) +
($cpf[3] * 8) +
($cpf[4] * 7) +
($cpf[5] * 6) +
($cpf[6] * 5) +
($cpf[7] * 4) +
($cpf[8] * 3) +
($cpf[10] * 2);
$resto = $soma2 % 11;
$digito2 = $resto < 2 ? 0 : 11 - $resto;
return (($cpf[10] == $digito1) && ($cpf[11] == $digito2));
}
if ($cpf == ""){
$erro_f .= "Campo em branco ";
}
$erro=0;
if (!verificaCPF($cpf)){
$erro=1;
$erro_f .= "<br>Número inválido, por favor digite um CPF válido ";
}
else
if ($erro==0){
$erro_f .= "";
}
===================================
eu soh adicionei esse $erro_f, para usá-lo no final:
=========================
if ($erro_f != "") {
echo "Foram encontrados erros no formulário, favor corrigí-los:<br>
$erro_f <br>
Clique <a href=\"javascript:history.go(-1)\">aqui</a> para voltar.";
}
else {
if (!empty($HTTP_GET_VARS)) while(list($name, $value) = each($HTTP_GET_VARS)) $$name = $value;
if (!empty($HTTP_POST_VARS)) while(list($name, $value) = each($HTTP_POST_VARS)) $$name = $value;
echo "<script language=\"JavaScript\">self.location.href='DEU-CERTO-BLZ.PHP';</script>";
}
============
por favor, me ajudem...
=================================
function verificaCPF($cpf) {
if (strlen($cpf) <> 12 )
return 0;
$soma1 = ($cpf[0] * 10) +
($cpf[1] * 9) +
($cpf[2] * 8) +
($cpf[3] * 7) +
($cpf[4] * 6) +
($cpf[5] * 5) +
($cpf[6] * 4) +
($cpf[7] * 3) +
($cpf[8] * 2);
$resto = $soma1 % 11;
$digito1 = $resto < 2 ? 0 : 11 - $resto;
$soma2 = ($cpf[0] * 11) +
($cpf[1] * 10) +
($cpf[2] * 9) +
($cpf[3] * 8) +
($cpf[4] * 7) +
($cpf[5] * 6) +
($cpf[6] * 5) +
($cpf[7] * 4) +
($cpf[8] * 3) +
($cpf[10] * 2);
$resto = $soma2 % 11;
$digito2 = $resto < 2 ? 0 : 11 - $resto;
return (($cpf[10] == $digito1) && ($cpf[11] == $digito2));
}
if ($cpf == ""){
$erro_f .= "
}
$erro=0;
if (!verificaCPF($cpf)){
$erro=1;
$erro_f .= "<br>
}
else
if ($erro==0){
$erro_f .= "";
}
===================================
eu soh adicionei esse $erro_f, para usá-lo no final:
=========================
if ($erro_f != "") {
echo "Foram encontrados erros no formulário, favor corrigí-los:<br>
$erro_f <br>
Clique <a href=\"javascript:history.go(-1)\">aqui</a> para voltar.";
}
else {
if (!empty($HTTP_GET_VARS)) while(list($name, $value) = each($HTTP_GET_VARS)) $$name = $value;
if (!empty($HTTP_POST_VARS)) while(list($name, $value) = each($HTTP_POST_VARS)) $$name = $value;
echo "<script language=\"JavaScript\">self.location.href='DEU-CERTO-BLZ.PHP';</script>";
}
============
por favor, me ajudem...
24/02/2004 12:57pm
(~20 anos atrás)
Comigo naum funcionou.
Minha dúvida é nessa parte:
$soma1 = ($cpf[0] * 10) +
($cpf[1] * 9) +
($cpf[2] * 8) +
($cpf[3] * 7) +
($cpf[4] * 6) +
($cpf[5] * 5) +
($cpf[6] * 4) +
($cpf[7] * 3) +
($cpf[8] * 2);
As variáveis $cpf[2], $cpf[6] e $cpf[10] naum são respectivamente os caracteres ., . e - ? Entaum pq elas tb são usadas nos cálculos?
Obrigado.
Minha dúvida é nessa parte:
$soma1 = ($cpf[0] * 10) +
($cpf[1] * 9) +
($cpf[2] * 8) +
($cpf[3] * 7) +
($cpf[4] * 6) +
($cpf[5] * 5) +
($cpf[6] * 4) +
($cpf[7] * 3) +
($cpf[8] * 2);
As variáveis $cpf[2], $cpf[6] e $cpf[10] naum são respectivamente os caracteres ., . e - ? Entaum pq elas tb são usadas nos cálculos?
Obrigado.
10/06/2003 10:08am
(~21 anos atrás)