Ir para conteúdo
Fórum Script Brasil
  • 0

Validar Cpf


brunocasado

Pergunta

Gente estou com duvidas em validar um cpf... eu sou novato em php e estou lendo um livro o qual passou esse codigo para validaçao porem não explicou como poderei usar em um campo cpf.

ai vai o codigo

function cpf_errado($cpf) {
    $erro = false;
    $aux_cpf = "";
    for($j=0; $j<strlen($cpf);$j++)    
        if (substr($cpf, $j, 1)>= "0" and substr($cpf,$j,1)<="9")
        $aux_cpf .= substr($cpf,$j,1);
        if (strlen($aux_cpf)!=11)
        $erro=true;
        else {
        
        $cpf1 = $aux_cpf;
        $cpf2 = substr($cpf, -2);
        $controle = "";
        $start = 2;
        $end = 10;
        for($i=1;$i<=2;$i++) {
        
        $soma = 0;
        for($j=$start;$j<=$end;$j++)
        $soma += substr($cpf1,($j-$i-1),1)*($end+1+$i-$j);
        if($i==2)
        $soma += $digito *2;
        $digito = ($soma * 10) %11;
        if($digito==10)
        $digito = 0;
        $controle .=$digito;
        $start = 3;
        $end = 11;
        }
        
        if($controle!=$cpf2)
        $erro=true;
        }
        return $erro;
        
        }

como poderei chamar essa funçao em um campo chamado cpf?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Um exemplo de como utilizar essa função:

index.php

<?php
function cpf_errado($cpf) {
$erro = false;
$aux_cpf = "";
for($j=0; $j<strlen($cpf);$j++)
if (substr($cpf, $j, 1)>= "0" and substr($cpf,$j,1)<="9")
$aux_cpf .= substr($cpf,$j,1);
if (strlen($aux_cpf)!=11)
$erro=true;
else {

$cpf1 = $aux_cpf;
$cpf2 = substr($cpf, -2);
$controle = "";
$start = 2;
$end = 10;
for($i=1;$i<=2;$i++) {

$soma = 0;
for($j=$start;$j<=$end;$j++)
$soma += substr($cpf1,($j-$i-1),1)*($end+1+$i-$j);
if($i==2)
$soma += $digito *2;
$digito = ($soma * 10) %11;
if($digito==10)
$digito = 0;
$controle .=$digito;
$start = 3;
$end = 11;
}

if($controle!=$cpf2)
$erro=true;
}
return $erro;

}
$cpf = $_POST["cpf"];
cpf_errado($cpf);
?>
<form name="Teste" action="index.php" method="post">
<input type="text" name="cpf"><br />
<input type="submit" value="Enviar">
</form>[/codebox]

Link para o comentário
Compartilhar em outros sites

  • 0
intao fiz isso

ele apenas esta chamando a pagina index.php

ele não esta dando algum erro apos eu digitar errado...

opa bruno...beleza?

faltou você verificar se a função retorna true ou false, veja:

true para cpf errado;

false para cpf correto;

olha como fica o código:

<?php
function cpf_errado($cpf) {
    $erro = false;
    $aux_cpf = "";
    for($j=0; $j<strlen($cpf);$j++)
        if (substr($cpf, $j, 1)>= "0" and substr($cpf,$j,1)<="9")
            $aux_cpf .= substr($cpf,$j,1);
            if (strlen($aux_cpf)!=11)
            $erro=true;
        else {
        $cpf1 = $aux_cpf;
        $cpf2 = substr($cpf, -2);
        $controle = "";
        $start = 2;
        $end = 10;
    for($i=1;$i<=2;$i++) {
    
    $soma = 0;
    for($j=$start;$j<=$end;$j++)
    $soma += substr($cpf1,($j-$i-1),1)*($end+1+$i-$j);
    if($i==2)
    $soma += $digito *2;
    $digito = ($soma * 10) %11;
    if($digito==10)
    $digito = 0;
    $controle .=$digito;
    $start = 3;
    $end = 11;
    }

    if($controle!=$cpf2)
    $erro=true;
    }
    return $erro;

}
$cpf = $_POST["cpf"];

if($cpf != ""){
    if(cpf_errado($cpf)){
        echo "cpf errado";
    }
    else{
        echo "cpf correto";
    }
}
?>
<form name="Teste" action="index.php" method="post">
<input type="text" name="cpf"><br />
<input type="submit" value="Enviar">
</form>

perceba que antes dos erros fiz uma veirificação se já foi digitado o cpf, pois assim ele não aparece logo que carrega pela primeira vez a página a mensagem "cpf errado", já que a variável $cpf está com valor NULL...

beleza???

flow, abraço bruno!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...