0

Validação CPF

criado por Rodrigo Mendes Soares em 23/03/2002 1:07am
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

Comentários:

Mostrando 1 - 5 de 5 comentários
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));
08/04/2004 2:37pm (~20 anos atrás)

Luiz Gonzaga disse:
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...
    24/02/2004 12:57pm (~20 anos atrás)

    Funcionou.....
    10/06/2003 11:13am (~21 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.
    10/06/2003 10:08am (~21 anos atrás)

    Novo Comentário:

    (Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)