Olá, atualizei o velho script de busca de endereço por CEP, apesar do antigo ser funcional, não havia a função de busca automática (após terminar de digitar o cep).
Agora é possível configurar em uma única linha se a busca é automática ou manual.
Existem 2 versões para você utilizar, uma delas usa o bootstrap css e está com aparência mais agradável.
A outra versão (arquivo clean.php) está crua, sem nenhuma formatação, ideal para incorporar em sistemas já existentes.
Anteriormente, utilizava o webservice da republicavirtual.com.br para este serviço mas eles bloqueam o IP se for constatado o uso abusivo, como eu coloquei no blog esse exemplo e tivemos milhares de acessos acabei tendo o IP bloqueado, depois isso resolvi criar o meu webservice para esta finalizadade.
Se ao invés de usar esse script pronto você desejar criar seu próprio script poderá usar o webservice disponível em:
http://clareslab.com.br/ws/cep/json
Para utiliza-lo basta passar o cep como parâmetro na url, exemplo:
http://clareslab.com.br/ws/cep/json/08615-000/
Você receberá o resultado em JSON.
Nota: É preciso passar o cep no formato do exemplo, ou seja, deve ter o hífen(traço) , caso contrário nenhum resultado será retornado.
Em breve irei disponibilizar o retorno em outros formatos, como XML, JS …
Aviso só para quem já utiliza o script:
Galera, infelizmente esse serviço está sendo desativado, o domínio desse serviço está expirado e não vou poder pagar por ele já que ele só tem o WS do cep. Sei que é pouca grana, 30 ao ano mas 30 aqui, 30 ali, e acolá…dá bastante coisa ao ano. É uma pena porque sei que muita gente desenvolveu em cima desse script. Boa sorte a todos;
Quem quiser pode adaptar o script alterando a url do ws para: http://clareslab.com.br/ws/cep/json/
Não irei falar de como fazer isso, é por sua conta;
Você pode também, apenas baixar novamente o script com a url já alterada;
Olá meu caro, boa tarde. Não consegui fazer funcionar o teu exemplo nem no site nem local.
Olá Gil, cara o script funciona normalmente e bem, o problema com a demonstração é que tivemos milhares de acessos em pouco tempo o webservice bloqueou o ip do servidor.
Mas se baixar o script deve funcionar normalmente.
Se não funcionar, tente ver no console de erros javascript a mensagem e me informe.
Amigo Rafael, excelente Blog, está de parabéns!
Baixei o script do CEP e depois de cansativas horas consegui que ele funcionasse dentro de um módulo num site que estou a terminar feito em Joomla. Funcionou perfeito, pulei de alegria. Porém, a alegria não durou muito pois alguns usuários vieram reclamar que o site não buscava o CEP. Foi quando percebi que o script não está funcionando no Internet Explorer. Nem a sua versão de teste também está funcionando no IE, mas no Chrome e no Mozilla funfou redondinho.
Testei em outras máquinas com IE-9 pra eliminar a possibilidade de ser algo da minha máquina, mas não foi nem por reza braba.
Meu amigo, teria como você me ajudar nisso?
Abraços,
Anderson
é velho, puta merda, essa merda desse IE ferra a vida de todo mundo, que raiva dessa merda nem deixa a gente fazer as coisas mais simples.
Olha o problema no IE é que ele não aceita Cross-Origin (acessar um arquivo externo, nesse caso o endereço do webservice diretamente).
é f***!
Info:
http://enable-cors.org/
http://www.webdavsystem.com/ajax/programming/cross_origin_requests
Mas eu alterei o script e tem um maldito arquivo adicional chamado ie.php, você precisa baixar novamente.
Para adiantar, a única coisa que mudou foi o cep.js e houve a inclusão do ie.php, então você só precisa substituir o seu cep.js e incluir na raiz o ie.php (maldito ie, continuo com raiva);
Obrigado por notificar o problema,
abs
Rafael, obrigado por ter respondido. Pois é esse IE é uma bosta meu caro, infelizmente ainda temos que conviver com isso.
Baixei a nova versão e infelizmente não funcionou no IE, pra variar. Mas testei aqui no seu blog e funcionou perfeito no IE.
Será que não ficou alguma diferença nos scripts?
Abraços e muito obrigado se puder me ajudar.
Anderson
Baixa novamente, mandei de novo o .rar.
Anderson , vc por acaso tem este modulo modificado ja para o Joomla ? Poderia me enviar ?
Gil, atualizei o script, os caras que disponibilizavam o webservice bloquearam meu ip por um susposto uso abusivo, pode até ser, uma vez que a página de demonstração foi bastante usada rs rs.
Depois disso, perdi essa tarde inteira criando o bendito do webservice próprio, assim quero ver quem vai bloquear rsrs. Foi até bom, eu queria mesmo fazer e manter esse serviço. Obrigado por notificar o problema. Abs
Olá Rafael,
Em primeiro lugar, obrigado pela atenção.
Sobre a funcionalidade, ficou muito boa como promete no entanto você tirou, ao que parece, a funcionalidade de exibição no mapa que era o que mais me interessava. Pessoalmente tenho uma base mais atualizada que a da “republica” que é onde você busca os endereços e já faço uma busca, um pouco diferente da sua, no entanto queria implementar o mapa ao lado da mesma, como você fez, com excelência, devo ressaltar, no seu exemplo.
O site que usa a busca no cadastro pessoal ou no cadastro dos imóveis é o “http://www.oximoveis.com”, caso queira dar uma olhada.
No mais agradeço e fico a disposição de qualquer coisa que puder ajudar.
Abraço.
Estou refazendo o trecho do mapa ainda hoje. Quanto a base de dados que possui, poderia disponibiliza-la para eu atualizar a minha ou é algo comercial?
Posta aqui, ou entra no site que postei, e me manda seu contato que eu vejo o que posso fazer.
Abraço.
Meu email rafadinix@gmail.com. Se é o mapa que lhe interessa a versao anterior do script tem o trecho, voce ainda tem ele? Se tiver me manda pq eu perdi rsrsrs. Dai me diz no email como exatamente precisa que faco para vc.
Rafael, você é o cara! Funcionou perfeito agora! Me ajudou muito muito, e penso que trabalhos como o seu são dignos de se tirar o chapéu. Coloca um link no blog pra galera te incentivar e fazer doações. Abraços e muito obrigado!
Anderson
Valeu irmão!
Quanto a doações, rs rs … a maioria mal agradece o tempo e recurso que gasto aqui.
Abs
Olá Rafael.
Estava muito procurando um sistema simples assim. muito bom..
Uma duvida e um Help:
Preciso que quando digito o cep, mostra o Ponto no mapa, mas também os pontos de fonrecedores mais próximos (pré adicionados no banco),
É dificil adaptar pra fazer isso??
ex: http://www.itau.com.br/ – clique no mapinha la emcima a direita.
Se vc puder me ajudar, agradesso:
Obs: apoio a idéia do Anderson. adiciona um link de doação.. não exitarei em doar..
abraço
Fala ae Fabiano,
entendi o que você quer mas não vou desenvolver para você o seu sistema, no blog tem conteúdo suficiente para você montar isso que quer.
No entanto, para ajuda-lo resolvi escrever mais um post, ou seja, criar mais um script… daqui a pouco postarei ele.
Com esse script você vai poder fazer o que deseja mas… é o máximo que poderei te ajudar nisso, ok ?
Abraços, obrigado pelo comentário e quanto as doações, bom, se realmente desejar doar aí a cerveja, te passo os dados por e-mail hehehe.
Opa.. Cara, esse codigo me ajudou muito no sistema que estou desenvolvendo..
Acho que me exprecei errado, quando pedi sua ajuda, não queria que vc desenvolvesse pra mim. mas só desse uma luz.. mas acabei achando. kkkk
Sou de Mogi e gostaria de contactar vc, Para fazer uns Freelas aqui na agencia que trabalho.. se lhe interessar..
De qualquer forma queria seu contato..
obs. pode me enviar os dados para doação.. que vou fazer sim… acho justo…
Grande abraço..
Pois é brother, acabou que baseado no que você disse eu fiz um post que já é 90% do que você! 🙂
http://clares.com.br/google-maps-com-marcadores-personalizados/
Orra Mogi, meu vizinho hhehehe
vou te mandar um email.
abs
Rafael, meus parabéns!
Seu trabalho é simplesmente fantástico!
Tenho duas questões para você:
quando procuro por um cep que não tem logradouro (no caso de cidades aonde a cidade inteira responde por apenas um cep), ele não retorna nada.
Neste caso, acho que ele teria que fazer um select do campo cep na tabela logradouros e caso nada fosse encontrado ele buscaria dentro do campo cep da tabela cidades. Tudo bem, se ele não encontrar nem na tabela logradouros e nem na tabela cidades ele retornaria “não existe”. Não manjo nada de java, e não sei se o seu webservice manda estes dados, então resolvi postar este bug. Se quiser testar: busque pelo cep: 69450-000.
Montei um select aqui ilustrando os dois casos:
http://pastebin.com/YcWDkTh9
E eis a segunda questão:
Ao invéz de utilizar um webservice, eu gostaria de utilizar o meu próprio banco de dados em mysql para fazer as consultas. Você poderia me orientar a respeito? Utilizo php para desenvolver minhas páginas e estou disposto a criar um script e disponibilizá-lo aqui para a galera que também precisar do mesmo (assim ninguém sobrecarrega o seu server fazendo consultas de cep hehehe).
Muito grato! E continue o bom trabalho!
Fala Gabriel, cara, realmente existe o seguinte problema:
A base de cep que tenho não é a melhor de todas.
Teve um cidadão aê no blog que pediu milhares de ajudas até resolvermos o problema dele, em seguida ele disse que tinha a base mais atualizada que a minha, quando eu pedi
para ele me mandar ele simplesmente sumiu, que foda né cara? uma bosta de um arquivo zipado e esses zé roelas ficam miguelando, por isso não conseguem fazer merda nenhuma.
Quero que ele sente na pasta zip dele. Enfim, não sei onde conseguir uma base mais atualizada. Se quiser a que eu tenho posso te mandar por e-mail (email não dá é grande tenho que subir para algum lugar).
E se um dia você conseguir uma melhor e quiser compartilhar também… e se não quiser tbm bom, deixa. Fiquei nervoso com esse cara.
Então, para você entender como é minha base tenho as tabelas de UF com cep por estado e uma tabela chamada cep_unico com esses ceps meio perdidos.
Enquanto escrevia achei esse link com uma “suposta base atualizada”
http://d.coisasuteis.com.br/links/?iddownload=6
Então Rafael, no final das contas programei esse esquema que eu descrevi para você.
Quanto à base de dados eu não posso te afirmar que tenho “a mais completa” e coisa e tal mas até agora não falhou com nenhum cep testado.
Sou a favor de conhecimento livre, portanto vou postar o código para você e também a base de ceps que eu possuo.
Aqui seguem os códigos:
javascript: http://pastebin.com/p004EWWF
o arquivo busca_cep.php: http://pastebin.com/4fDDrDN5
o arquivo de conexao do db que deve ficar na pasta \Connetions\db\: http://pastebin.com/nLHbrzjT
e o html do formulário: http://pastebin.com/tetLqcKK
Link para a base de dados de cep: http://www.mediafire.com/?56ta7ala425ik8q
Prontinho. Agora é só adaptar ao seu sistema de mapas e lançar a versão nova.
(não se esqueça dos créditos héin! kkkkk)
Abraço
Legal cara, vou arrumar um tempo e te dou um retorno. Valeu
Se estiver precisando atualizar a base de cep ou pra busca cep http://www.qualocep.com abs
Seria bem legal se não precisasse pagar!
Parabéns Rafael pelo aplicativo, muito show de bola, estou usando num form de cadastro, funcionando bacana, eu so não estou conseguindo captar os ceps com inicio 76 por exemplo 76870-052, poderia me dar uma ajuda como devo fazer?
Genivaldo, talvez a base de dados esteja desatualizada. Até o fim do mês 08 irei atualizar a base de dados;
Ola Rafael, vc e demais!!!! nunca achei q tinha encontrar isso na internet.
deixa fazer uma pergunta, no IE nao funciona, eu ja li que vc mudou o ie.php, eu tenho o arquivo 21-11-2012 mas nao funciona, sera que tem uma versao mais nova?
Desculpe a demora em responder, estive ausente por algum tempo.
Rodolfo, não consegui simular o problema na versão atual. Talvez você me informando os passos para reproduzir o problema eu consiga simular;
Rafael, Como eu faço para colocar um botao, onde esse botao faz um post para inclusao no mysql exemplo Action = “include.php”
Respondi sua dúvida há alguns dias atrás, espero que tenha recebido a notificação por e-mail pois a base de dados do blog precisou ser restaurada e não há a resposta que lhe enviei, continha um exemplo no pastebin.
http://pastebin.com/sH1R6z5C
Ola Rafael! você sabe me informar se você já fez ou onde posso encontrar um scrip na qual eu digito o cep e ai ele me traz os endereços próximos a ele, por exemplo.. eu digito o cep 05070-000 aí a busca me traz todos os endereços próximos a este cep?? desde já agradeço e parabens pela iniciativa de divulgaçao de scripts.. vc tem ajudado mtos pelo q vi.. abcs e aguardo retorno. Junior
Olá Junior, creio que para isso é necessário que na base de dados tenhamos mais informações para determinar uma área / faixa de endereços.
Infelizmente a base que eu tenho e que é utilizada neste exemplo é desatualizada e ninguém ajuda fornecendo uma base mais atual.
Outra forma de fazer isso é traçando rotas para determinar a menor distância mas o processo pode ficar demorado.
Também tenho interesse em fazer isso que você precisa e assim que eu fizer, tenha certeza de que irei compartilhar.
Abraços
Rafael,
Ótimo trabalho, parabéns!
Quanto ao banco de dados, existe alguma maneira, mesmo que pagando, para conseguir um banco mais atualizado?
É possível utilizar duas instâncias da busca? Caso seja possível, você poderia me indicar o caminho?
Muito Obrigado.
A versão mais atualizada do banco + script de consulta está no http://phpstaff.clares.com.br.
É possível 2 instâncias, basta alterar o ID do elemento.
wscep({‘auto’:false,’map’:’mydiv’})
wscep({‘auto’:false,’map’:’outraDiv’})
Quanto a minha dúvida, agradeço a atenção.
Vou fazer a compra do banco de dados e te envio assim que receber o link para download.
Agora, sobre o webservice. Se por qualquer problema, o serviço parar de ser oferecido, existe alguma alternativa?
Obrigado!
A alternativa é justamente você ter sua própria base de cep, assim, não correrá o risco de ter os serviços interrompidos.
A base de cep oferecida no phpstaff possui o mesmo script de consulta e está mais atualizado que o que você usa atualmente.
abs
Olá Rafael, bom dia,
O que acha de lançar um ´crowdfunding´ – financiamento coletivo para adquirimos a base mais nova dos correios? quanto mais gente entrar, menos caro ficaria.. porém, entendo que deveria ser fechado seu download somente para os contribuintes…. infelizmente… rs
Olá Artur, poxa cara, é assim mesmo né? Acho que só dessa forma iremos conseguir.
Neste caso, qual seria a base disponível para venda que você considera atualizada?
Rafael Boa tarde.
Estou querendo implementar no meu modulo “Override” do Seblod esta sua funcao .. mas não faco a menor ideia de como fazer .. vc ja tem algo pronto para isso pode explicar as alterações que eu deveria fazer …
Marcio, não tenho! abs
Bom dia Rafael, qnd colo o link no navegador, recebo o retorno normal… qnd envio via get ou post recebo a seguinte critica no console do navegador…
XMLHttpRequest cannot load http://clareslab.com.br/ws/cep/json/72145811/. No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘null’ is therefore not allowed access.
já tentei utilizando outros webservices tbm:
http://cep.republicavirtual.com.br/web_cep.php?cep=72145811&formato=json
http://xtends.com.br/webservices/cep/json/72145811
Todos funcionam via navegador.
tentei mudar o envio das informaçã9o de post para get, que a principio, é o que enviamos via navegador, mas deu a mesma msg.
Já passou por isso Rafael?
Felipe,
crie um arquivo php com o seguinte código:
http://pastebin.com/PFfAJqe3
Depois mude a url do post (ao invés do webservice) para este arquivo (ex. cep.php)
Faça novos testes;
abs
Rafael,
Para salvar as informações geradas pelo formulário em um banco de dados MySQL, como poderia ser feita a inserção do mapa? Outra pergunta. Para deixar de usar o webservice e utilizar o banco de dados você tem algum tutorial pronto?
Muito obrigado!
Olá Junior, você pode incluir as instruções para gravar os dados no banco.
Só posso te dar a direção.
Inclua um botão para submeter o formulário e crie um arquivo php para gravar as informações no banco.
Para exibir no mapa, você terá que recuperar também latitude e longitude.
No arquivo js/cep.js (função setMap) você pode, via js, setar o valor de 2 campos do tipo hidden, algo como:
$(‘#lat’).val(lat);
$(‘#lng’).val(lng);
veja: http://pastebin.com/gzcnCKEx
Então, quando for submeter o form haverá estes valores nele.
Quanto ao webservice, o ideal é que você tem o seu próprio porque se eu morrer já eras o ws.
Já tenho este script com a consulta pronta + banco de dados
Veja:
http://phpstaff.clares.com.br/index/detalhes/base-cep-2013-atualizada-com-script-de-consulta/
O custo é muito baixo.
abs
Rafael,
Você é um gênio, funcionou perfeitamente. Agora, que tal disponibilizar o webservice para venda lá no phpstaff? Se você vier a bater as botas, hehe, o ws ainda sobreviveria em outros servidores.
Boa ideia Júnior!
Disponibilizei apenas o banco + consulta, quem sabe conseguimos espalhar o serviço e precisar cada vez menos de terceiros, e quem sabe um dia fazer os correios pararem de frescura.
Vou incluir no WS no “Pacote CEP” que está no PHPStaff.
Abraços
Galera, infelizmente esse serviço está sendo desativado, o domínio (s desse serviço está expirado e não vou poder pagar por ele já que ele só tem o WS do cep. Sei que é pouca grana, 30 ao ano mas 30 aqui, 30 ali, e acolá…dá bastante coisa ao ano. É uma pena porque sei que muita gente desenvolveu em cima desse script. Boa sorte a todos;
Porque você não coloca seu código e projeto no github ou bitbucket assim as pessoas poderiam inclusive colaborar mais com você.
Verdade Rick, vou fazer isso. A falta de tempo me atrapalha muito a pensar em coisas legais como a que sugeriu.
Obrigado
E ai Rafael aquele outro problema já resolvi, só queria que você me tirasse uma dúvida, como vc disse para nós mesmos criar nosso próprio web service, porém consegui um banco do cep completo de 2014 atualizado porém não consigo enviar para o banco o tamanho do arquivo é de 150mb e já aumentei o tamanho de limite do banco acima disso e o tempo de transferência mas mesmo assim o phpmyadmim manda o banco quebrado se pudesse me dar um help, eu uso o wamp server com php 5.4.3
E ai poderia responder uma pergunta que te enviei, sobre o banco de cep, grato
Com o MySQl Workbench é facinho, facinho. Segue o link para download:
http://www.mysql.com/products/workbench/
Olá Rafael, td em paz? o serviço no https tem previsão para ser normalizado?
Olá Humberto, infelizmente não tive como renovar o SSL.
Agora o serviço só está disponível em http://
Infelizmente… mas é assim mesmo, é uma coisa que eu não uso e ninguém quer gastar $15 com algo que não usa.
Eu tinha planos de manter isso mas sabe ali o botão “doações” jamais foi clicado rs rs
Não que eu queira receber algo em troca do que eu faço aqui mas, dai pagar SSL já é demais né hehehehe
Boa sorte!
Rafael, tem novidades sobre a continuação ou não do serviço?
Olá Eduardo, o serviço está ativo. Só não está rodando no SSL.
Se algum filho de Deus se propor a pagar pelo SSL eu ativo novamente. Eu tô sem grana para isso.
Valeu
Rafael, publica no github seu projeto, posso dar uma mão nele… abcs
Que sensacional essa matéria cada! Parabéns, salvou aqui!!!!
Tenho com uma dúvida. Estou com um formulário que possui Pessoa Física e outro formulário Pessoa Jurídica. Mas o cep está recebendo somente Pessoa Física. Gostaria de saber como receber o cep nos dois formulários(Pessoa Física e Jurídica), sendo que está funcionando em apenas um?. Sou iniciante no assunto.
Obrigado.
Olá Rafael, teria como ser baixado ou sei lá uma outra forma de o site ter essa base no banco de dados e efetuar a consulta sem utilizar o seu SSL? Seria ruim adicionar o script no site e depois ver que não está funcionando por motivos descontinuar o serviço ou algo do tipo? Belo script e parabéns pelo blog, um dos melhores. Abç