Ir para conteúdo

Arquivado

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

JRRC

Verificar se CPF já foi cadastrado

Recommended Posts

Pense assim: CPF é um título instranferível... não tem como mudar o CPF, então pra que dar essa opção? Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pense assim: CPF é um título instranferível... não tem como mudar o CPF, então pra que dar essa opção? Imagem Postada

Mais e se por acaso durante o cadastro a pessoa digitar o CPF errado sem querer ?! É sobre essa possibilidade que estou tentando fazer essa função, entendeu ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais e se por acaso durante o cadastro a pessoa digitar o CPF errado sem querer ?! É sobre essa possibilidade que estou tentando fazer essa função, entendeu ?!

 

Basta validar:

 

/**
* Valida um CPF
* @param string $cpf O CPF
* @return boolean
*/
function isValidCPF( $cpf ){
$ret = false;

if ( is_string( $cpf ) ){
	if ( ( strlen( $cpf = preg_replace( '/[^\d]/' ,'' , $cpf ) ) == 11 ) && ( str_repeat( $cpf{ 1 } , 11 ) != $cpf ) ){
		for ( $i = 0 , $v = 0 , $t = 10 ; $i < 11 ; ++$i ) if ( $i < 9 )
			$v += $cpf{ $i } * $t--;

		$v1 = ( $x = $v % 11 ) < 2 ? 0 : 11 - $x;

		for ( $i = 0 , $v = 0 , $t = 11 ; $i < 10 ; ++$i )
			$v += $cpf{ $i } * $t--;

		$v2 = ( $x = $v % 11 ) < 2 ? 0 : 11 - $x;

		$ret = sprintf( '%s%s' , $v1 , $v2 ) == substr( $cpf , 9 , 2 );
	}
}

return $ret;
}

 

Para usar isso ai:

 

$cpf =& $_POST[ 'cpf' ];

if ( isValidCPF( $cpf ) ){
//aqui vai o código
} else {
echo 'Esse CPF foi digitado incorretamente';
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o codigo do alterar ficaria da seguinte forma abaixo

 

 

if ($opcao = "Alterar")
{
function isValidCPF( $cpf ){
      	 $ret = false;

       if ( is_string( $cpf ) ){
               if ( ( strlen( $cpf = preg_replace( '/[^\d]/' ,'' , $cpf ) ) == 11 ) && ( str_repeat( $cpf{ 1 } , 11 ) != $cpf ) ){
                       for ( $i = 0 , $v = 0 , $t = 10 ; $i < 11 ; ++$i ) if ( $i < 9 )
                               $v += $cpf{ $i } * $t--;

                       $v1 = ( $x = $v % 11 ) < 2 ? 0 : 11 - $x;

                       for ( $i = 0 , $v = 0 , $t = 11 ; $i < 10 ; ++$i )
                               $v += $cpf{ $i } * $t--;

                       $v2 = ( $x = $v % 11 ) < 2 ? 0 : 11 - $x;

                       $ret = sprintf( '%s%s' , $v1 , $v2 ) == substr( $cpf , 9 , 2 );
               }
       }

       return $ret;
}

$cpf =& $_POST[ 'cpf' ];

if ( isValidCPF( $cpf ) )
{
$sql = "UPDATE cliente SET
cidade           = '$cidade',
bairro  	 = '$bairro',
endereco	 = '$endereco',
nome		 = '$nome',
numero_casa      = '$numero_casa',
complemento  	 = '$complemento',
cpf		 = '$cpf',
rg		 = '$rg',
foneresi	 = '$foneresi',
fonecom      	 = '$fonecom',
fonecel	 	 = '$fonecel',
datacad		 = '$datacad',
datanasc	 = '$datanasc',
sexo		 = '$sexo',
peso		 = '$peso',
altura		 = '$altura',
profissao	 = '$profissao',
estadocivil  = '$estadocivil',
idade		 = '$idade'
WHERE id = '$codigo'
";

mysql_query($sql) or die (mysql_error());
header ("location: ../index.php?link=16");
} 
else
{
echo '<script> history.go(-1); alert("CPF já cadastrado no sistema!");</script>'; 
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então o codigo do alterar ficaria da seguinte forma abaixo

 

Só a função isValidCPF deveria ser colocada em um arquivo separado, específico para funções auxiliares (helpers).

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.