cap_alts 2 Denunciar post Postado Junho 8, 2015 Bom dia Aplicando a solução à meu script, encontrei a necessidade de tratamento quando o usuário entrasse com a data errada. Por fim pesquisei o script de retorno e detectei o texto de retorno. Para os que interessarem segue esta colaboração: if(!$resultado[0]) { if(strstr($html3,utf8_decode('CPF incorreto'))) {$resultado['status'] = 'CPF incorreto';} if(strstr($html3,utf8_decode('Data de nascimento informada'))) {$resultado['status'] = 'Data de Nascimento incorreta';} else if(strstr($html3,utf8_decode('não existe em nossa base de dados'))) {$resultado['status'] = 'CPF não existe';} else if(strstr($html3,utf8_decode('Os caracteres da imagem não foram preenchidos corretamente'))) {$resultado['status'] = 'Imagem digitada incorretamente';} else {$resultado['status'] = 'Receita não responde';} Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Ruan Djiovani Zuchara 1 Denunciar post Postado Junho 8, 2015 Olá, estou tentando aplicar este código em nosso sistema, porém, esta retornando 'false' ao buscar o captcha na receita.Fiz um JSON e chamei o GetCaptcha a fim de tentar pegar algum erro no php, sem sucesso, dando um exit na imagem do captcha vem a seguinte informação:$imgsource = curl_exec($ch);exit(var_dump($imgsource));Resultado:bool(false) Alguém passou pelo mesmo problema ? Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Junho 8, 2015 Olá, estou tentando aplicar este código em nosso sistema, porém, esta retornando 'false' ao buscar o captcha na receita. Fiz um JSON e chamei o GetCaptcha a fim de tentar pegar algum erro no php, sem sucesso, dando um exit na imagem do captcha vem a seguinte informação: $imgsource = curl_exec($ch); exit(var_dump($imgsource)); Resultado: bool(false) Alguém passou pelo mesmo problema ? Boa tarde Utilizei o script em minha aplicação sem problema, desde a primeira versão, inclusive alterei sua estrutura original, pois apliquei-o em uma estrutura MVC, além de utilizar o index da minha aplicação ja criado, sem problema. Inclusive criei uma funcionalidade de atualização da imagem utilizando ajax e foi de boa. Abraços 1 Compartilhar este post Link para o post Compartilhar em outros sites
Ruan Djiovani Zuchara 1 Denunciar post Postado Junho 10, 2015 Boa tarde Utilizei o script em minha aplicação sem problema, desde a primeira versão, inclusive alterei sua estrutura original, pois apliquei-o em uma estrutura MVC, além de utilizar o index da minha aplicação ja criado, sem problema. Inclusive criei uma funcionalidade de atualização da imagem utilizando ajax e foi de boa. Abraços Olá, já testei e retestei o script, descobri que o mesmo não encontrava o diretório especificado para salvar os dados do cookie, rodando em apache local, especifiquei o mesmo desta maneira define('COOKIELOCAL', 'C:/ipm/htdocs/receita/cookies_cnpj/'); forçando o diretório para salvar o cookie, porém, o mesmo não está salvando as chaves de sessão. Você poderia compartilhar suas classes ? (se possível é claro) Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Junho 10, 2015 Olá, já testei e retestei o script, descobri que o mesmo não encontrava o diretório especificado para salvar os dados do cookie, rodando em apache local, especifiquei o mesmo desta maneira define('COOKIELOCAL', 'C:/ipm/htdocs/receita/cookies_cnpj/'); forçando o diretório para salvar o cookie, porém, o mesmo não está salvando as chaves de sessão. Você poderia compartilhar suas classes ? (se possível é claro) Obrigado! Bom dia, No meu caso somente aterei na linha abaixo o trecho em destaque, fazendo com que enxergasse a pasta em minha estrutura de arquivos: define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'../cookies_cpf/'); Espero ter ajudado. A disposição. André 1 Compartilhar este post Link para o post Compartilhar em outros sites
Ruan Djiovani Zuchara 1 Denunciar post Postado Junho 10, 2015 Bom dia, No meu caso somente aterei na linha abaixo o trecho em destaque, fazendo com que enxergasse a pasta em minha estrutura de arquivos: define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'../cookies_cpf/'); Espero ter ajudado. A disposição. André Sim, esta foi a minha ideia inicial, porém, nós utilizamos estruturas internas com servidores linux o qual não temos acesso, em vários casos não conseguimos encontrar o arquivo/diretório especificado, por isso estou tentando fazer a integração local forçando o diretório. O meu problema, não é quanto ao diretório, somente citei o problema que tive devida a nossa estrutura interna. O meu arquivo responsável pela captura e conversão do captcha, que também é responsável por salvar o cookie gerado no primeiro acesso a página não está conseguindo salvar as chaves de sessão, necessárias para simular uma continuação da conexão setando na requisição o cookie gerado na captura do captcha, o que é necessário pois posteriormente será validado na requisição dos dados de um CPF/CNPJ. Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Junho 10, 2015 (editado) Sim, esta foi a minha ideia inicial, porém, nós utilizamos estruturas internas com servidores linux o qual não temos acesso, em vários casos não conseguimos encontrar o arquivo/diretório especificado, por isso estou tentando fazer a integração local forçando o diretório. O meu problema, não é quanto ao diretório, somente citei o problema que tive devida a nossa estrutura interna. O meu arquivo responsável pela captura e conversão do captcha, que também é responsável por salvar o cookie gerado no primeiro acesso a página não está conseguindo salvar as chaves de sessão, necessárias para simular uma continuação da conexão setando na requisição o cookie gerado na captura do captcha, o que é necessário pois posteriormente será validado na requisição dos dados de um CPF/CNPJ. Boa tarde Diante do exposto apostaria em verificar permissões e propriedade, apesar de acreditar que já tenha avaliado esta possibilidade, no demais, neste momento não posso contribuir em uma solução, porém caso surja algo, posto aqui. Abraços Editado Junho 10, 2015 por cap_alts Compartilhar este post Link para o post Compartilhar em outros sites
Ruan Djiovani Zuchara 1 Denunciar post Postado Junho 10, 2015 Boa tarde Diante do exposto apostaria em verificar permissões e propriedade, apesar de acreditar que já tenha avaliado esta possibilidade, no demais, neste momento não posso contribuir em uma solução, porém caso surja algo, posto aqui. Abraços Consegui resolver, era apenas definições de proxy. Para quem tiver problemas com autenticação de proxy, basta adicionar nos parametros do curl a seguinte configuração: $proxyNumber = '192.168.3.1'; $proxyPort = '3128'; curl_setopt($ch, CURLOPT_PROXY, "{$proxyNumber}:{$proxyPort }"); Compartilhar este post Link para o post Compartilhar em outros sites
Ualter 0 Denunciar post Postado Junho 11, 2015 (editado) Ola, Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada. Tanto para CNPJ quanto CPF Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente ) Teste local apresenta esta mensagem também Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33 No meu caso a linha 33 é esta: {$conteudo .= fread($file, 1024);} Se alguém passou por este problema deixe uma mensagem. Obrigado. Editado Junho 12, 2015 por Ualter Compartilhar este post Link para o post Compartilhar em outros sites
Ruan Djiovani Zuchara 1 Denunciar post Postado Junho 12, 2015 Ola, Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada. Tanto para CNPJ quanto CPF Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente ) Teste local apresenta esta mensagem também Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33 No meu caso a linha 33 é esta: {$conteudo .= fread($file, 1024);} Se alguém passou por este problema deixe uma mensagem. Obrigado. Quanto ao "undefined variable", altere este trecho // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Por este // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); $conteudo = ''; while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Inicializando a variavel $conteudo antes de utilizá-la. Quanto ao Captcha, aqui funcionou normalmente. Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 12, 2015 Ola, Já tentei de toda as forma rodar o script mas no meu caso só retorna isto. Já verifiquei as variáveis no php.ini e nada, digitei as letras conferindo para não digitar errado e nada. Tanto para CNPJ quanto CPF Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => [21] => [status] => Imagem digitada incorretamente ) Teste local apresenta esta mensagem também Notice: Undefined variable: conteudo in D:\xampp\htdocs\Consultas\CNPJ\funcoes.php on line 33 No meu caso a linha 33 é esta: {$conteudo .= fread($file, 1024);} Se alguém passou por este problema deixe uma mensagem. Obrigado. Olá Amigo Além da dica do Ruan, caso persistam os problemas adote os seguintes procedimentos afim de localizar o problema 1 - Echoe a resposta da receita na tela ao invés de mostrar apenas o Array 2 - monitore o cookie na pasta cookie_cpf , ou cookie_cnpj , verifique se está sendo gerado o arquivo dentro da pasta, e se o mesmo está sendo modificado com a inclusão do atributo flag=1 no envio dos dados do curl, conforme explicado na página2 deste post. do contrário fica difícil ajuda-lo Abraços Marcos Fico muito feliz em ver que meu scriptizinho tá rendendo bem. Segue abaixo contribuição para validação dos dados no envio, validação Client-Side (Javascript) e Server-Side (PHP) que tenho utilizado em minhas aplicações para consulta, afim de enriquecer a solução. Destaque para a Regex de validação de data em Javascript, que leva em consideração inclusive anos bisextos JAVASCRIPT // função para transformar campo CPF ou CNPJ em numero function getNumber( strNumber , len ) { var result = ''; var i; for ( i = 0 ; i < strNumber.length ; i++ ) { number = parseInt(strNumber.charAt(i)); if ( number ) {result += strNumber.charAt(i)} else { if ( number == 0 ) {result += strNumber.charAt(i)} } } if ( result.length != len ) { // Completa com zeros a esq. result = '000000000000000' + result; var newLen = result.length; result = result.substring ( newLen - len , newLen ); } return result; } // Validação de CPF function checkCPF(strNumber,len_number) { var result = true; var digit; var calc; comprimento = len_number; strNumber = getNumber(strNumber,comprimento); if (strNumber.length < 4) {result = false;} digit = strNumber.substring(strNumber.length-2, strNumber.length); number = strNumber.substring(0 , strNumber.length - 2); calc = getCPFDigit(number); // caso o calculo é um número de 1 digito , acerta colocando um 0 na frente if (calc.length == 1) {calc = "0"+calc;} if (digit != calc) {result = false;} return result; } // Checagem CPF function getCPFDigit(strNumber) { var i; var digit1; var digit2; var total; var result; strNumber = '000000000' + getNumber(strNumber) strNumber = strNumber.substring(strNumber.length - 9, strNumber.length) total=0 for (i = 1 ; i < 10; i++) {total = total + strNumber.substring(i - 1 , i) * (11 - i);} digit1 = total * 10 % 11; if (digit1 == 10) {digit1 = 0;} aux = digit1.toString(10); strNumber = strNumber + aux.substring(aux.length - 1 , aux.length); total=0; for (i = 1 ; i < 11 ; i++) {total = total + strNumber.substring(i - 1 , i) * (12 - i);} digit2 = total * 10 % 11; if (digit2 == 10) {digit2 = 0;} aux = digit1 * 10 + digit2; caux = aux.toString(10); result = caux.substring(caux.length - 2 , caux.length); return result; } // Validação de CNPJ function checkCNPJ( cnpj ) { var cnpjCalc; var cnpjAdd; var i; var cnpjDigit; var result; cnpj = getNumber( cnpj , 14 ); check1( cnpj ); // Pega somente os números cnpjCalc = cnpj.substring( 0 , 12 ); // Primeira parte do Digito de verificação cnpjAdd = 0; for( i = 0 ; i < 4 ; i++ ) { cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (5 - i); } for( i = 0 ; i < 8 ; i++ ) { cnpjAdd += parseInt( cnpjCalc.substring( i + 4 , i + 4 + 1 ) ) * (9 - i); } // Primeiro Digito cnpjDigit = 11 - (cnpjAdd % 11); if ( cnpjDigit == 10 || cnpjDigit == 11 ) { cnpjCalc += '0'; } else { cnpjCalc += cnpjDigit; } // Segunda parte do digito de verificação cnpjAdd = 0; for ( i = 0 ; i < 5 ; i++ ) { cnpjAdd += parseInt( cnpjCalc.substring( i , i + 1 ) ) * (6 - i); } for ( i = 0 ; i < 8 ; i++ ) { cnpjAdd += parseInt( cnpjCalc.substring( i + 5, i + 5 + 1 ) ) * (9 - i); } // Segundo Digito cnpjDigit = 11 - (cnpjAdd % 11); if ( cnpjDigit == 10 || cnpjDigit == 11 ) { cnpjCalc += '0'; } else { cnpjCalc += cnpjDigit; } if ( cnpj == cnpjCalc ) {result = true;} else {result = false;} return result; } // checagem CNPJ function check1( value ) { var count = 1; var len = value.length; var first; if ( len > 1 ) {first = value.charAt( 0 );} else {return false;} for ( var i = 1; i < value.length ; i++ ) { if ( value.charAt( i ) == first ) {count++;} } if ( count == len ) {return false;} return true; } function checkDATA(str,compr) { var re = /^(((0[1-9]|[12][0-9]|3[01])([-.\/])(0[13578]|10|12)([-.\/])(\d{4}))|(([0][1-9]|[12][0-9]|30)([-.\/])(0[469]|11)([-.\/])(\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-.\/])(02)([-.\/])(\d{4}))|((29)(\.|-|\/)(02)([-.\/])([02468][048]00))|((29)([-.\/])(02)([-.\/])([13579][26]00))|((29)([-.\/])(02)([-.\/])([0-9][0-9][0][48]))|((29)([-.\/])(02)([-.\/])([0-9][0-9][2468][048]))|((29)([-.\/])(02)([-.\/])([0-9][0-9][13579][26])))$/; var m; if ((m = re.exec(str)) !== null) { if (m.index === re.lastIndex) {re.lastIndex++;} } if(m!== null) {return true;} else {return false;} } PHP <php // Checa CPF // retorna 0 se incorreto , e 1 se correto function CheckCPF($number) { // Os str_replace servem para "corrigir" os possíveis "erros", tendo em vista que o código foi preparado apenas para trabalhar com números if(strstr($number,".")) {$number=str_replace(".","",$number);} if(strstr($number,"-")) {$number=str_replace("-","",$number);} if(strstr($number,"/")) {$number=str_replace("/","",$number);} if(strlen($number)!=11) {return "0";} else { for($i=0;$i<9;$i++) {$d1=$d1+($number[$i]*(10-$i));} $d1=11-($d1%11); if($d1>=10) {$d1=0;} for($i=0;$i<9;$i++) {$d2=$d2+($number[$i]*(11-$i));} $d2=11-(($d2+($d1*2))%11); if($d2>=10) {$d2=0;} if($number[9]==$d1&&$number[10]==$d2) {return "1";} else {return "0";} } } // checa CNPJ // retorna 0 se incorreto , e 1 se correto function CheckCNPJ($number) { // Os str_replace servem para "corrigir" os possíveis "erros", tendo em vista que o código foi preparado apenas para trabalhar com números if(strstr($number,".")) {$number=str_replace(".","",$number);} if(strstr($number,"-")) {$number=str_replace("-","",$number);} if(strstr($number,"/")) {$number=str_replace("/","",$number);} if(strlen($number)!=14) {return "0";} else { $d1=$number[11]*2+$number[10]*3+$number[9]*4+$number[8]*5+$number[7]*6+$number[6]*7+$number[5]*8+$number[4]*9+$number[3]*2+$number[2]*3+$number[1]*4+$number[0]*5; $d1=11-($d1%11); if($d1>=10) {$d1=0;} $d2=$d1*2+$number[11]*3+$number[10]*4+$number[9]*5+$number[8]*6+$number[7]*7+$number[6]*8+$number[5]*9+$number[4]*2+$number[3]*3+$number[2]*4+$number[1]*5+$number[0]*6; $d2=11-($d2%11); if($d2>=10) {$d2=0;} if($number[12]==$d1&&$number[13]==$d2) {return "1";} else {return "0";} } } // Checa Data // retorna 0 se incorreto , e 1 se correto function CheckDATEx($number) { $data_explode = explode('/',$number); if(checkdate($data_explode[1],$data_explode[0],$data_explode[2])) {return "1";} else {return "0";} // abaixo a mesma regex do javascript, só pra ilustrar a utilização, uma vez que o php tem função nativa (acima) para checar datas /* $re ="/^(((0[1-9]|[12][0-9]|3[01])([-.\\/])(0[13578]|10|12)([-.\\/])(\\d{4}))|(([0][1-9]|[12][0-9]|30)([-.\\/])(0[469]|11)([-.\\/])(\\d{4}))|((0[1-9]|1[0-9]|2[0-8])([-.\\/])(02)([-.\\/])(\\d{4}))|((29)(\\.|-|\\/)(02)([-.\\/])([02468][048]00))|((29)([-.\\/])(02)([-.\\/])([13579][26]00))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][0][48]))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][2468][048]))|((29)([-.\\/])(02)([-.\\/])([0-9][0-9][13579][26])))$/"; preg_match($re, $number, $matches); if($matches[0]) {return "1";} else {return "0";} */ } ?> Lembrando que a Validação do lado Server-Side deve sempre ser utilizada na entrada de dados vindos de Formulário. A Validação Client-Side é opcional, mas a utilização de ambas é recomendada para agilidade do processo. Espero ter colaborado Abraços Marcos Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Junho 12, 2015 [ Editado ] 1 Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 13, 2015 Boa Noite pessoal Resolvi criar um repositório em GitHub para facilitar a colaboração, compartilhamento e atualização on-line dos scripts para cpnsulta de CNPJ e CPF Nesta nova versão atualizada, fundi as consultas de CNPJ e CPF nos já conhecidos 4 scripts, qua agora realizam ambas consultas. Fiquem a vontade para efetuar download e colaborar no seguinte link: https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Lembrando que não é promoção. É GRATIS mesmo, rs Abraços a todos Marcos Compartilhar este post Link para o post Compartilhar em outros sites
marcelogpl 0 Denunciar post Postado Junho 14, 2015 Marcos, baixei do GitHub e instalei no meu servidor e entrou em loop apresentando as seguintes mensagens: Warning: fopen(cpf_687728aa99c2fa9ef2001c2ef929dc8e): failed to open stream: No such file or directory in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 110Warning: feof() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 111Warning: fread() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 112 Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 14, 2015 Marcos, baixei do GitHub e instalei no meu servidor e entrou em loop apresentando as seguintes mensagens: Warning: fopen(cpf_687728aa99c2fa9ef2001c2ef929dc8e): failed to open stream: No such file or directory in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 110 Warning: feof() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 111 Warning: fread() expects parameter 1 to be resource, boolean given in /home/teste/public_html/Consultas_CNPJ_CPF_Receita_Federal-master/funcoes.php on line 112 Olá Marcelo Ao Fundir os Scripts de CNPJ e CPF cometi um pequeno erro, me desculpe. Já alterei o script funções.php em github. Fique a vontade para baixar novamente https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraço Marcos 2 Compartilhar este post Link para o post Compartilhar em outros sites
marcelogpl 0 Denunciar post Postado Junho 15, 2015 Obrigado!! Funcionando perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites
Ualter 0 Denunciar post Postado Junho 15, 2015 (editado) Quanto ao "undefined variable", altere este trecho // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Por este // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); $conteudo = ''; while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Inicializando a variavel $conteudo antes de utilizá-la. Quanto ao Captcha, aqui funcionou normalmente. Quanto ao "undefined variable", altere este trecho // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Por este // pega os dados de sessão gerados na visualização do captcha dentro do cookie $file = fopen($cookieFile_fopen, 'r'); $conteudo = ''; while (!feof($file)) { $conteudo .= fread($file, 1024); } fclose($file); Inicializando a variavel $conteudo antes de utilizá-la. Quanto ao Captcha, aqui funcionou normalmente. Valeu Ruan e Massa. Consegui resolver aqui, o problema estava na codificação UFT8. Agora sim está rodando file. Editado Junho 15, 2015 por Ualter Compartilhar este post Link para o post Compartilhar em outros sites
Tonicley 0 Denunciar post Postado Junho 18, 2015 Boa Noite Parece que a receita gosta mesmo de criar dificuldades para vender facilidades, e muita gente gooooosta de vender facilidades. Segue a solução "pós data de nascimento obrigatória" (alteração de 03/06/2015 da receita) Seguem SOMENTE as alterações nos scripts ,.. se alguém tiver muuuuuuita dificuldade , é só pedir ajuda aqui no post ....que posto tudo (4 scripts completos GRATIS , rs) lembrando que é totalmente GRATIS !!!! , rs Alterações no Script index.php // substituir este bloco de código <input type="text" name="CPF" maxlength="11" required /> <b style="color: red">CPF</b> <br /> // por este bloco , observe que agora deve ser digitado o CPF com os pontos e traços , e a data com a barra <input type="text" name="CPF" maxlength="14" minlength="14" required /> <b style="color: red">CPF xxx.xxx.xxx-xx</b> <br /> <input type="text" name="txtDataNascimento" maxlength="10" minlength="10" required /> <b style="color: red">Data Nascim. dd/mm/aaaa</b> <br /> Alterações n.1 no Script funcoes.php // Substitua este bloco de código $post = array ( 'Enviar' => 'Consultar', 'txtCPF' => $cpf, 'txtTexto_captcha_serpro_gov_br'=> $captcha ); // por este código $post = array ( 'txtTexto_captcha_serpro_gov_br' => $captcha, 'tempTxtCPF' => $cpf, 'tempTxtNascimento' => $datanascim, 'temptxtToken_captcha_serpro_gov_br' => '', 'temptxtTexto_captcha_serpro_gov_br' => $captcha ); Alterações n.2 no Script funcoes.php // altere esta linha function getHtmlCPF($cpf, $captcha) // por esta linha function getHtmlCPF($cpf, $datanascim, $captcha) Alterações n.3 no Script funcoes.php // altere este bloco de código $campos = array( 'No do CPF:', 'Nome da Pessoa Física:', 'Situação Cadastral:'); ); // por este bloco de código $campos = array( 'No do CPF:', 'Nome da Pessoa Física:', 'Data de Nascimento:', 'Situação Cadastral:', 'Data da Inscrição:' ); por fim , SUBSTITUA o arquivo processa.php por este abaixo <?php require('funcoes.php'); $cpf = $_POST['CPF']; $datanascim = $_POST['txtDataNascimento']; $captcha = $_POST['CAPTCHA']; $getHtmlCPF = getHtmlCPF($cpf, $datanascim, $captcha); if($getHtmlCPF) { $campos = parseHtmlCPF($getHtmlCPF); print_r($campos); } ?> Amigo Se você. é programador, parta pelas soluções de consulta CPF eCNPJ deste post. Creio que elas podem lhe dar uma "luz" no desenvolvimento de seu projeto , pois forma com a qual a receita trata o assunto "captcha" não difere muito destas 2 formas. Grande abraço Olá Massa191, Fiz questão de me cadastrar no fórum só para agradecer pela solução. Parabéns pela iniciativa "open source". Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 18, 2015 Obrigado Tonicley Quem quiser a solução completa (CPF + CNPJ) , segue Link para o repositório em Github. Além do Download, quem quiser colaborar com o desenvolvimento desta aplicação , sugerir modificações , clonar , dar Estrela , fique a vontade.... rs https://github.com/Massa191/Consultas_CNPJ_CPF_Receita_Federal Abraço. Marcos 1 Compartilhar este post Link para o post Compartilhar em outros sites
Tonicley 0 Denunciar post Postado Junho 18, 2015 Bom dia Aplicando a solução à meu script, encontrei a necessidade de tratamento quando o usuário entrasse com a data errada. Por fim pesquisei o script de retorno e detectei o texto de retorno. Para os que interessarem segue esta colaboração: if(!$resultado[0]) { if(strstr($html3,utf8_decode('CPF incorreto'))) {$resultado['status'] = 'CPF incorreto';} if(strstr($html3,utf8_decode('Data de nascimento informada'))) {$resultado['status'] = 'Data de Nascimento incorreta';} else if(strstr($html3,utf8_decode('não existe em nossa base de dados'))) {$resultado['status'] = 'CPF não existe';} else if(strstr($html3,utf8_decode('Os caracteres da imagem não foram preenchidos corretamente'))) {$resultado['status'] = 'Imagem digitada incorretamente';} else {$resultado['status'] = 'Receita não responde';} Abraços cap_alts, Muito boa sua colaboração. Valeu! Compartilhar este post Link para o post Compartilhar em outros sites