dtdigital 0 Denunciar post Postado Maio 25, 2013 Ola estou desenvolvendo um sistema e gostaroia de uma ajuda! Quero validar a data de nascimento e cpf em algum orgam tipo receita federal mas para isso precisa ser todo em php algo usando curl. Compartilhar este post Link para o post Compartilhar em outros sites
InterPlanet 7 Denunciar post Postado Maio 25, 2013 Oi! Para validar data, simples: chekdate(), estude-a. Para validar o CPF, não precisa acessar a receita, existe um algorítimo (disponível aqui no iMasters, link na função) para isto. Eu desenvolvi uma função baseada nele, veja: function validaCPF( $valor = '' ) { # http://imasters.com.br/artigo/2410/javascript/algoritmo-do-cpf/ $doc = textoNumeros($valor); if ( strlen($doc) !== 11 ) return false; $n = substr($doc, 0, 9); // numeros $v = substr($doc, 9); // digitos verificadores do cpf // verificador 1 $_n = str_split($n); // matriz com numeros do cpf $multiplicador = 10; // multiplicador do dígito 1 $d1Total = 0; // soma dos numeros * multiplicador foreach ($_n as $numero) { $d1Total += $numero * $multiplicador; $multiplicador--; } $d1Resto = $d1Total % 11; // calculo do digito 1 baseado no resto da divisao da soma por 11 $d1 = $d1Resto >= 2 ? 11 - (int)$d1Resto : 0; // digito verificador 1 // verificador 2 $_n[] = $d1; // acrescenta o primeiro digito verificador a matriz $multiplicador = 11; // multiplicador do dígito 2 $d2Total = 0; // soma dos numeros * multiplicador foreach ($_n as $numero) { $d2Total += $numero * $multiplicador; $multiplicador--; } $d2Resto = $d2Total % 11; // calculo do digito 2 baseado no resto da divisao da soma por 11 $d2 = $d2Resto >= 2 ? 11 - (int)$d2Resto : 0; // digito verificador 2 return $v == $d1.$d2 ? true : false; } Edit: A função textoNumeros(), que esqueci de postar, desculpe, é apenas extrair apenas números do valor passado a função. Segue: function textoNumeros( $texto = '' ) { return preg_replace('/[^0-9]/', '', trim($texto)); } Abraço e boa sorte. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 25, 2013 O algoritmo em questão apenas verifica se a formação do número é válida, mas não se o CPF de fato existe "no mundo real", o problema de valiar no site da receita é o captcha que existe. Compartilhar este post Link para o post Compartilhar em outros sites
InterPlanet 7 Denunciar post Postado Maio 25, 2013 O algoritmo em questão apenas verifica se a formação do número é válida, mas não se o CPF de fato existe "no mundo real", o problema de valiar no site da receita é o captcha que existe. De fato, me expressei mal, desculpem. Todavia, acho que ai é mais próximo possível de uma "validação" a não ser que tenha acesso ao banco de dados da receita, rs, ou queira brincar de acessar ilegalmente a página da receita tentando "burlar" ou "quebrar" o captcha. Compartilhar este post Link para o post Compartilhar em outros sites