Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

D2th3

[Resolvido] Validação de CPF

Recommended Posts

Amigos,

 

Estou usando uma função para validar o CPF digitado no formulário, porém esse função tem invalidado CPFs corretos e verdadeiros (pesquisei no site da Receita Federal). Não são todos e sim algumas ocorrencias.

 

function ValidaCPF($dados) {
      
      $cpf = str_replace(array(".","-"),"",$dados);
      $soma = 0;
    

   if(strlen($cpf) == 11){
          
		  $cpf_nulo = array("00000000000", "11111111111", 
		                    "22222222222", "33333333333", 
				    "44444444444", "55555555555", 
				    "66666666666", "77777777777",
				    "88888888888", "99999999999");
			
		 
                  if(!in_array($cpf, $cpf_nulo)){
			       
		       
                   for ($i = 0; $i < 9; $i++) {         
                       $soma += (($i+1) * $cpf[$i]);
                   }

                       $d1 = ($soma % 11);
      
                       if ($d1 == 10) {
                           $d1 = 0;
                       }
      
                  $soma = 0;
      
                  
                  for ($i = 9, $j = 0; $i > 0; $i--, $j++) {
                       $soma += ($i * $cpf[$j]);
                  }
      
                       $d2 = ($soma % 11);
      
                       if ($d2 == 10) {
                           $d2 = 0;
                        }      
                    
					
		
                    if ($d1 == $cpf[9] && $d2 == $cpf[10]) {
 		                return true;
		            }else{
			        return false;
			    }
     
			  
			  
			  }else{
			    return false;
			  }
          

     }else{
        return false;
     }
   
}

 

Por favor me ajudem a verificar se existe algum erro nessa validação ou me indique se houve alguma alteração na Receita Federal para validar CPFs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta essa função:

function validaCPF($cpf)
{	// Verifiva se o número digitado contém todos os digitos
    $cpf = str_pad(ereg_replace('[^0-9]', '', $cpf), 11, '0', STR_PAD_LEFT);
	
	// Verifica se nenhuma das sequências abaixo foi digitada, caso seja, retorna falso
    if (strlen($cpf) != 11 || $cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222' || $cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' || $cpf == '66666666666' || $cpf == '77777777777' || $cpf == '88888888888' || $cpf == '99999999999')
	{
	return false;
    }
	else
	{   // Calcula os números para verificar se o CPF é verdadeiro
        for ($t = 9; $t < 11; $t++) {
            for ($d = 0, $c = 0; $c < $t; $c++) {
                $d += $cpf{$c} * (($t + 1) - $c);
            }

            $d = ((10 * $d) % 11) % 10;

            if ($cpf{$c} != $d) {
                return false;
            }
        }

        return true;
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta essa função:

function validaCPF($cpf)
{	// Verifiva se o número digitado contém todos os digitos
    $cpf = str_pad(ereg_replace('[^0-9]', '', $cpf), 11, '0', STR_PAD_LEFT);
	
	// Verifica se nenhuma das sequências abaixo foi digitada, caso seja, retorna falso
    if (strlen($cpf) != 11 || $cpf == '00000000000' || $cpf == '11111111111' || $cpf == '22222222222' || $cpf == '33333333333' || $cpf == '44444444444' || $cpf == '55555555555' || $cpf == '66666666666' || $cpf == '77777777777' || $cpf == '88888888888' || $cpf == '99999999999')
	{
	return false;
    }
	else
	{   // Calcula os números para verificar se o CPF é verdadeiro
        for ($t = 9; $t < 11; $t++) {
            for ($d = 0, $c = 0; $c < $t; $c++) {
                $d += $cpf{$c} * (($t + 1) - $c);
            }

            $d = ((10 * $d) % 11) % 10;

            if ($cpf{$c} != $d) {
                return false;
            }
        }

        return true;
    }
}

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, achei um site bem interessante sobre validação de cpf, eles me ajudaram bastante e to repassando, vai que eles podem te ajudar tbm né... site : www.consultacpf.com . abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.