Henrique Barcelos 290 Denunciar post Postado Dezembro 5, 2009 Pense assim: CPF é um título instranferível... não tem como mudar o CPF, então pra que dar essa opção? Compartilhar este post Link para o post Compartilhar em outros sites
JRRC 0 Denunciar post Postado Dezembro 5, 2009 Pense assim: CPF é um título instranferível... não tem como mudar o CPF, então pra que dar essa opção? 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
João Batista Neto 448 Denunciar post Postado Dezembro 5, 2009 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
JRRC 0 Denunciar post Postado Dezembro 5, 2009 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
João Batista Neto 448 Denunciar post Postado Dezembro 6, 2009 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