Massa191 18 Denunciar post Postado Abril 7, 2015 Olá Jonny Tenho esta aplicação rodando em duas hospedagens (Locaweb e UolHost) ,e em uma delas (Locaweb) está havendo o mesmo problema que vc. relatou já faz cerca de uma semana. Na outra (UolHost) corre tudo ok. Após diversas interações no chamado , análises dos técnicos , e etc... , vão migram meu site para outro servidor. Dizem que o problema pode ser uma limitação por excesso de consultas , mas não acredito , pois minha aplicação não faz muitas consultas a ponto de ser penalizado por isso , e também não acredito que no mesmo servidor web compartilhado existam muitos outros sites que façam a mesma consulta em número excessivo a ponto de restringir o IP do servidor Web. Outro detalhe é que o problema oscila , hora responde depois de x seg , hora não responde , hora responde instantaneamente , sem seguir um padrão que possa ser atribuído a uma penalização por muitos acessos. Acredito que trata-se de um problema de Conexão / Rota. AbraçoMarcos Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Abril 7, 2015 Exatamente isso meu problema Marcos, esta aplicação esta na Locaweb e o problema começou a ocorrer a cerca de uma semana exatamente como você descreveu, mas no meu caso eles não concordam de forma alguma que é algo no servidor, além disso houve bloqueio nos envios de email com conteúdo HTML, sem aviso prévio eles simplesmente cortaram os envios. Vou tentar ver com eles se eles podem fazer algo, esta parte é indispensável no meu sistema, os clientes já acostumaram tanto que não aceitam usar o cadastro manual. Mais uma vez obrigado Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Abril 7, 2015 No meu caso os problemas começaram com instabilidade por todo o site e também no script da receita. inicialmente eles também não acreditavam que pudesse ser um probl de servidor , mas provei a eles que a mesma aplicação funciona no UOL Host , e então analizaram com mais cuidado e não chegaram a conclusão nenhuma , rs , ou melhor , chegaram a conclusão que pode ser uma limitação por muitos acessos por parte da receita , o que EU não acredito , e ofereceram a migração para outro servidor. Enfim , vamos ver se agora vai !!! Do contrário , buscaremos outra hospedagem ,... o duro é que não tem uma que presta. Pelomenos com a Locaweb , sempre consegui um bom dialogo , e os "analistas" , resolvem localmente , sem depender de "dallas/USA" Abraços AbraçoMarcos Compartilhar este post Link para o post Compartilhar em outros sites
tajiri 0 Denunciar post Postado Abril 8, 2015 Ola pessoal, ja faz 3 meses que venho acompanhado este post, e ainda não consegui fazer funcionar a função da CONSULTA do CPF, já "embromei" diversas a adaptações, o único que funciona é o do CNPJ, e nunca o do CPF, alguem pode mandar de volta um Codigo fonte para a consulta do CPF porfavor Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Abril 8, 2015 Ola pessoal, ja faz 3 meses que venho acompanhado este post, e ainda não consegui fazer funcionar a função da CONSULTA do CPF, já "embromei" diversas a adaptações, o único que funciona é o do CNPJ, e nunca o do CPF, alguem pode mandar de volta um Codigo fonte para a consulta do CPF porfavor Olá Amigo ver a 8ª postagem (Postado 08 fevereiro 2015 - 19:46) da pagina 1 deste tópico . Estão lá os 4 Scripts e as instruções. É só copiar e colar Abraço Marcos Compartilhar este post Link para o post Compartilhar em outros sites
Johnny Santos 0 Denunciar post Postado Abril 9, 2015 Olá Marcos, conseguiu resolver o problema com a Locaweb? Meu ticket até hoje esta em aberto... passei para a UOLHost a aplicação e lá esta funcionando 100% Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Abril 10, 2015 Olá Marcos, conseguiu resolver o problema com a Locaweb? Meu ticket até hoje esta em aberto... passei para a UOLHost a aplicação e lá esta funcionando 100% Olá Johnny Sim , efetuaram a migração. Agora está ok. Foram muito atenciosos comigo. Abraços Marcos Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Abril 10, 2015 Ola pessoal, ja faz 3 meses que venho acompanhado este post, e ainda não consegui fazer funcionar a função da CONSULTA do CPF, já "embromei" diversas a adaptações, o único que funciona é o do CNPJ, e nunca o do CPF, alguem pode mandar de volta um Codigo fonte para a consulta do CPF porfavor Como você está fazendo ? Compartilhar este post Link para o post Compartilhar em outros sites
tajiri 0 Denunciar post Postado Abril 10, 2015 Opa, blz Mass191, Então eu já fiz essa leitura e coloquei na pática. Ao enviar o formulário, ele fica dando um loop infinito e não termina de carregar nunca. Olá Amigo ver a 8ª postagem (Postado 08 fevereiro 2015 - 19:46) da pagina 1 deste tópico . Estão lá os 4 Scripts e as instruções. É só copiar e colar AbraçoMarcos Opa, beleza Mass191, Então eu já fiz essa leitura e coloquei na pática. Ao enviar o formulário, ele fica dando um loop infinito e não termina de carregar nunca. PESSOAL:::::: apos inumeras tentativas e todas dando errado, ai vai a dica matadora, essa vai para quem esta trabalhando com PHP EM WINDOWS IIS troque o define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$pasta_cookies); define('HTTPCOOKIELOCAL', 'C:\www\PastadoseuScript\\'.$pasta_cookies); em servidores windows e necessário apontar a pasta real.... :yes: Fica a Dica! Compartilhar este post Link para o post Compartilhar em outros sites
Trickster 1 Denunciar post Postado Maio 5, 2015 Olá pessoal, Estou conseguindo obter todos os dados da consulta do CNPJ sem problemas, mas gostaria de obter também os dados disponíveis na consulta do QSA e não estou conseguindo. Alguém sabe se é possível obter estes dados juntamente com os dados da consulta do CNPJ? Agradeço desde já. Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Maio 10, 2015 (editado) Acabei de colocar em produção uma API com retorno de dados pelo CPF ou CNPJ, via JSON ou XML sem o uso de captcha. Testem depois e me digam o que acharam, tirem suas dúvidas. Sugestões e críticas construtivas serão bem vindas. www.cpfcnpj.com.br Editado Maio 10, 2015 por AlissonLinneker Compartilhar este post Link para o post Compartilhar em outros sites
FelipeBiN 0 Denunciar post Postado Maio 12, 2015 Obrigado Marcos Peli Eu havia implementado isso em Code Igniter e o cliente não havia usado desde quando foi alterado. Procurei uma solução cai no seu post. Teste sem implementar no Code Igniter e funcionou vou alterar minhas libraries para voltar a funcionar. Att Felipe Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Maio 21, 2015 Aí é que está você. ão precisa do Token , você. precisa de uma chave de sessão que é gerada na primeira visualização do Captcha e é gravada no cookie Passo mastigado os códigos que rodam aqui pra facilitar sua vida - São 4 arquivos php.(index.php , funcoes.php , processa.php , getcaptcha.php) - Não se esqueça de criar a pasta com o nome de (cookies_cpf) no mesmo diretório onde estarão estes 4 arquivos , onde serão guardados os cookies de sessão que armazenam as chaves de sessão da receita. Para rodar , basta chamar o index.php Primeiro arquivo: index.php <?php require('funcoes.php'); ?> <html> <head> <title>CNPJ e Captcha</title> </head> <body> <form method="post" action="processa.php"> <p><span class="titleCats">CPF e Captcha</span> <br /> <input type="text" name="CPF" maxlength="11" required /> <b style="color: red">CPF</b> <br /> <img src="getcaptcha.php" border="0"> <br /> <input type="text" name="CAPTCHA" maxlength="6" required /> <b style="color: red">O que vê na imagem acima?</b> <br /> </p> <p> <input id="id_submit" name="enviar" type="submit" value="Consultar"/> </p> </form> </body> </html> segundo arquivo: getcaptcha.php <?php define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.'cookies_cpf/'); // local onde será armazenado o cookie com os dados de sessão @session_start(); $cookieFile = COOKIELOCAL.session_id(); if(!file_exists($cookieFile)) { $file = fopen($cookieFile, 'w'); fclose($file); } $url = 'http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/captcha/gerarCaptcha.asp'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // aqui será gravada as chaves de sessão curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // aqui será gravada as chaves de sessão // IMPORTANTE: sem o parametro RETURNTRANSFER para esta chamada de curl. $imgsource = curl_exec($ch); curl_close($ch); if(!empty($imgsource)) { $img = imagecreatefromstring($imgsource); header('Content-type: image/jpg'); imagejpeg($img); } ?> terceiro arquivo , o mais importante: funcoes.php obs. não usei a bibl. DOM para ler o xml , ... fiz meu próprio gato , rs <?php // define caminho absoluto (COOKIELOCAL) e relativo (HTTPCOOKIELOCAL) para arquivo cookie $pasta_cookies = 'cookies_cpf/'; define('COOKIELOCAL', str_replace('\\', '/', realpath('./')).'/'.$pasta_cookies); define('HTTPCOOKIELOCAL', 'http://'.$_SERVER['SERVER_NAME'].str_replace(pathinfo($_SERVER['SCRIPT_FILENAME'],PATHINFO_BASENAME),'',$_SERVER['SCRIPT_NAME']).$pasta_cookies); // inicia sessão @session_start(); // função para pegar o que interessa function pega_o_que_interessa($inicio,$fim,$total) { $interesse = str_replace($inicio,'',str_replace(strstr(strstr($total,$inicio),$fim),'',strstr($total,$inicio))); return($interesse); } // função para pegar a resposta html da consulta pelo CPF na página da receita function getHtmlCPF($cpf, $captcha) { $cookieFile = COOKIELOCAL.session_id(); $cookieFile_fopen = HTTPCOOKIELOCAL.session_id(); if(!file_exists($cookieFile)) { return false; } else { // 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); $explodir = explode(chr(9),$conteudo); $sessionName = trim($explodir[count($explodir)-2]); $sessionId = trim($explodir[count($explodir)-1]); } // dados que serão submetidos a consulta por post $post = array ( 'Enviar' => 'Consultar', 'txtCPF' => $cpf, 'txtTexto_captcha_serpro_gov_br'=> $captcha ); $post = http_build_query($post, NULL, '&'); // prepara a variavel de session , AQUI ESTÀ A MÁGICA $cookie = $sessionId.'='.$sessionId; $ch = curl_init('http://www.receita.fazenda.gov.br/Aplicacoes/ATCTA/CPF/ConsultaPublicaExibir.asp'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); // aqui estão os campos de formulário curl_setopt($ch, CURLOPT_COOKIEFILE, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile); // dados do arquivo de cookie curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20100101 Firefox/8.0'); curl_setopt($ch, CURLOPT_COOKIE, $cookie); // continua a sessão anterior com os dados gravados anteriormente no cookie curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); curl_setopt($ch, CURLOPT_REFERER, 'http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/consultapublica.asp'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $html = curl_exec($ch); curl_close($ch); // echo $html , para ver a resposta da receita , tire o coment desta linha return $html; } // Função para extrair o que interessa da HTML e colocar em array sem DOM function parseHtmlCPF($html) { // respostas que interessam $campos = array( 'No do CPF:', 'Nome da Pessoa Física:', 'Situação Cadastral:'); // caracteres que devem ser eliminados da resposta $caract_especiais = array( chr(9), chr(10), chr(13), ' ', ' ', ); // prepara a resposta para extrair os dados $html = str_replace('<br /><br />','<br />',str_replace($caract_especiais,'',strip_tags($html,'<b><br>'))); // para utilizar na hora de devolver o status da consulta $html3 = $html; // faz a extração for($i=0;$i<count($campos);$i++) { $html2 = strstr($html,utf8_decode($campos[$i])); $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]),'<br',$html2)); $html=$html2; } // devolve STATUS da consulta correto if(!$resultado[0]) { if(strstr($html3,utf8_decode('CPF incorreto'))) {$resultado['status'] = 'CPF incorreto';} 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';} } else {$resultado['status'] = 'OK';} return $resultado; } ?> acima mando os resultados de volta cmorry , mas se quiser echoar a resposta da receita fique a vontade.... basta tirar o coment // a referida linha no final da função:getHtmlCPF quarto Arquivo: processa.php <?php require('funcoes.php'); $cpf = $_POST['CPF']; $captcha = $_POST['CAPTCHA']; $getHtmlCPF = getHtmlCPF($cpf, $captcha); if($getHtmlCPF) { $campos = parseHtmlCPF($getHtmlCPF); print_r($campos); } ?> Bom dia Amigo, inicialmente quero parabenizá-lo pela solução. Gostaria de saber se é possível recuperar a data de nascimento do CPF pesquisado?? Desde já Agradeço. André Luiz Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Maio 21, 2015 (editado) Bom dia Amigo, inicialmente quero parabenizá-lo pela solução. Gostaria de saber se é possível recuperar a data de nascimento do CPF pesquisado?? Desde já Agradeço. André Luiz A Receita só retorna o nome completo e com uso de captcha. Caso queira uma solução mais completa com retorno de nome, nome da mãe, data de nascimento, gênero, endereço e sem captchas, use a API: www.cpfcnpj.com.br Editado Maio 21, 2015 por AlissonLinneker Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Maio 21, 2015 Obrigado, vou dar uma olhada. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Junho 4, 2015 Boa noite A receita alterou a forma de consulta, para pesquisa esta sendo necessário informar a data de nascimento, portanto este script não esta funcionando, sempre retornando que a imagem foi digitada errada, mesmo que digitada corretamente. Tentei passar na chamada a data de nascimento com diversas formatações, porém sem sucesso. Gostaria de saber se alguém já possui alguma solução. Abraços André Compartilhar este post Link para o post Compartilhar em outros sites
AlissonLinneker 2 Denunciar post Postado Junho 4, 2015 Boa noite A receita alterou a forma de consulta, para pesquisa esta sendo necessário informar a data de nascimento, portanto este script não esta funcionando, sempre retornando que a imagem foi digitada errada, mesmo que digitada corretamente. Tentei passar na chamada a data de nascimento com diversas formatações, porém sem sucesso. Gostaria de saber se alguém já possui alguma solução. Abraços André Tenho uma solução paga. Você gastaria apenas R$15,00 para realização mínima de 500 consultas. Caso tenha interesse, me retorne. Compartilhar este post Link para o post Compartilhar em outros sites
Stopassolli 0 Denunciar post Postado Junho 5, 2015 Bom dia. Parabéns pela função, funciona perfeitamente. Não estou conseguindo aplicar para consulta/importação de dados da NFe, encontrei várias formas e todas elas ao meu ver, barram no captcha, e não obtive sucesso. http://pt.stackoverflow.com/questions/15166/logar-no-portal-nfe-com-curl-e-php http://forum.imasters.com.br/topic/520694-logar-no-portal-nfe-com-curl-e-php http://forum.imasters.com.br/topic/525087-php-para-pegar-danfe-nf-e-apartir-da-chave https://groups.google.com/forum/#!topic/nfephp/YFfrwyESFXg Se alguém puder ajudar agradeço. Richard Compartilhar este post Link para o post Compartilhar em outros sites
Massa191 18 Denunciar post Postado Junho 5, 2015 (editado) Boa noite A receita alterou a forma de consulta, para pesquisa esta sendo necessário informar a data de nascimento, portanto este script não esta funcionando, sempre retornando que a imagem foi digitada errada, mesmo que digitada corretamente. Tentei passar na chamada a data de nascimento com diversas formatações, porém sem sucesso. Gostaria de saber se alguém já possui alguma solução. Abraços André 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); } ?> Bom dia. Parabéns pela função, funciona perfeitamente. Não estou conseguindo aplicar para consulta/importação de dados da NFe, encontrei várias formas e todas elas ao meu ver, barram no captcha, e não obtive sucesso. http://pt.stackoverflow.com/questions/15166/logar-no-portal-nfe-com-curl-e-php http://forum.imasters.com.br/topic/520694-logar-no-portal-nfe-com-curl-e-php http://forum.imasters.com.br/topic/525087-php-para-pegar-danfe-nf-e-apartir-da-chave https://groups.google.com/forum/#!topic/nfephp/YFfrwyESFXg Se alguém puder ajudar agradeço. Richard 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 Editado Junho 6, 2015 por Massa191 Compartilhar este post Link para o post Compartilhar em outros sites
cap_alts 2 Denunciar post Postado Junho 6, 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 Bom dia Mais uma vez Agradeço sua colaboração, gratuita, rsrsrs. Estarei aplicando as alterações Qualquer dúvida posto aqui. um forte abraço. Compartilhar este post Link para o post Compartilhar em outros sites