Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kernel_tux

Busca CEP - Bem facil!

Recommended Posts

Oi Fabyo,Preciso habilitar algo pra poder usar o ajax? ou pra usar alguma outra função? Tentei com todos os códigos postados mas nenhum retornou nada. "Pisca" rapidamente "carregando..." mas não retorna os dados.Tb pensei que fosse o endereço dos correios, e baixei o arquivo que eles disponibilizam pra colocar no site e fazer a busca, e tentei todos os endereços possíveis, mas vi que não era isso.ObrigadoMarcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei usar os códigos acima, mas não funcionaram...não tá retornando nada...nem os links que colocaram mais acima...alguém sabe o que pode ser?

Ola, talves seu register globals estaja off,Para testar se é isso.. adiciona
$cep = $_POST['cep'];
antes do ifvlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcos Vinícius nao precisa habilitar nada só o javascript, que por padrao ja esta habilitado

 

e o script esta funcionando e é passado por GET e ja esta no script la nao precisa auterar nada

 

$cep = isset($_GET["cep"]) ? preg_replace("/[^\d]/", "", $_GET["cep"]) : false;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Elizeu, valeu a dica, mas não é isso.

 

Fabyo,

 

Parece brincadeira mas não consegui fazer funcionar estes códigos. Consegui fazer com um outro que achei, mas ele tem o problema dos acentos. Ele se perde inteiro qdo tem um acento no endereço. Manda para os campos errados ou para na metade. Comparei os códigos e só achei uma linha diferente:

 

imasters: preg_match_all("/\.value\s*=\s*[\"\']([^\"\']*)[\"\']/", $res, $matches);

outro: preg_match_all("#\.value\s*=\s*[\'](.*?)[\'][;]#", $res, $matches);

 

Não adiantou eu trocar as linhas nos códigos. Se coloco o do imasters no "outro", ele deixa de funcionar, e se coloco o do "outro" no imasters, este não passa a funcionar. De qq forma, parece que aí tem um problema.

 

Neste do Leo Guima tem um color que não tem no outro. Claro que não é isto. Mas parece que tem algo errado aí. Eu não conhecia esta forma de declarar atributos, mas acho que faltou as aspas na cor. De qq forma, com ou sem aspas não funcionou.

 

 

Coloquei o do Leo Guima aqui.

 

Coloquei este outro aqui.

 

O CEP 80010-904 não tem acento.

O CEP 80040-010 e o 80060-230 tem acento e se comportam diferentes.

 

Os códigos do "outro":

 

form.php

 

<script type="text/javascript"> function addEvent(obj, evt, func) {   if (obj.attachEvent) { 	return obj.attachEvent(("on"+evt), func);   } else if (obj.addEventListener) { 	obj.addEventListener(evt, func, true); 	return true;   }   return false; } function XMLHTTPRequest() {   try { 	return new XMLHttpRequest(); // FF, Safari, Konqueror, Opera, ...   } catch(ee) { 	try { 	  return new ActiveXObject("Msxml2.XMLHTTP"); // activeX (IE5.5+/MSXML2+) 	} catch(e) { 	  try { 		return new ActiveXObject("Microsoft.XMLHTTP"); // activeX (IE5+/MSXML1) 	  } catch(E) { 		return false; // doesn't support 	  } 	}   } } function buscarEndereco() {   var campos = { 	cep: document.getElementById("cep"), 	logradouro: document.getElementById("logradouro"), 	numero: document.getElementById("numero"), 	bairro: document.getElementById("bairro"), 	localidade: document.getElementById("localidade"), 	uf: document.getElementById("uf")   };   var ajax = XMLHTTPRequest();   ajax.open("GET", ("./end.php?cep=" + campos.cep.value.replace(/[^\d]*/, "")), true);   ajax.onreadystatechange = function() { 	if (ajax.readyState == 1) { 	  campos.logradouro.disabled = true; 	  campos.bairro.disabled = true; 	  campos.localidade.disabled = true; 	  campos.uf.disabled = true; 	  campos.logradouro.value = "carregando..."; 	  campos.bairro.value = "carregando..."; 	  campos.localidade.value = "carregando..."; 	} else if (ajax.readyState == 4) { 	  var r = ajax.responseText, i, logradouro, numero, bairro, localidade, uf; 	  logradouro = r.substring(0, (i = r.indexOf(';'))); 	  r = r.substring(++i); 	  numero = r.substring(0, (i = r.indexOf(';'))); 	  r = r.substring(++i); 	  bairro = r.substring(0, (i = r.indexOf(';'))); 	  r = r.substring(++i); 	  localidade = r.substring(0, (i = r.indexOf(';'))); 	  r = r.substring(++i); 	  uf = r.substring(0, (i = r.indexOf(';'))); 	  campos.logradouro.disabled = false; 	  campos.bairro.disabled = false; 	  campos.localidade.disabled = false; 	  campos.uf.disabled = false; 	  campos.logradouro.value = logradouro; 	  campos.bairro.value = bairro; 	  campos.localidade.value = localidade; 	  i = campos.uf.options.length; 	  while (i--) { 		if (campos.uf.options[i].getAttribute("value") == uf) { 		  break; 		} 	  } 	  campos.uf.selectedIndex = i; 	}   };   ajax.send(null); } window.addEvent(   window,   "load",   function() {window.addEvent(document.getElementById("cep"), "blur", buscarEndereco);} ); 	</script><form name="form" id="form" action="#" method="post"> 	<table width="253" border="0"> 	  <tr> 		<td colspan="2"><strong> 		  <label for="cep">CEP Residencial: <br> 		  </label> 		  <input name="cep" type="text" id="cep" /> 		</strong></td> 	  </tr> 	  <tr> 		<td width="154"><strong> 		  <label for="logradouro">Endereço:</label> 		  <br> 		  <input name="logradouro" type="text" class="campo3" id="logradouro" /> 		</strong></td> 		<td width="89"><strong> 		  <label for="numero" class="numero">Numero:<br> 		  </label> 		  <input name="numero" type="text" id="numero" size="7" /> 		</strong></td> 	  </tr> 	  <tr> 		<td colspan="2"><strong> 		  <label for="bairro">Bairro:</label> 		  <br> 		  <input name="bairro" type="text" id="bairro" /> 		</strong></td> 	  </tr> 	  <tr> 		<td colspan="2"><strong> 		  <label for="localidade">Cidade:</label> 		  <br> 		  <input name="localidade" type="text" id="localidade" /> 		</strong></td> 	  </tr> 	  <tr> 		<td colspan="2"><strong> 		  <label for="uf" class="uf">Estado:</label> 		  <br> 		  <select name="select2" id="uf"> 			<option value="">-- selecione --</option> 			<option value="AC">Acre</option> 			<option value="AL">Alagoas</option> 			<option value="AP">Amapá</option> 			<option value="AM">Amazonas</option> 			<option value="BA">Bahia</option> 			<option value="CE">Ceará</option> 			<option value="DF">Distrito Federal</option> 			<option value="ES">Espírito Santo</option> 			<option value="GO">Goiás</option> 			<option value="MA">Maranhão</option> 			<option value="MT">Mato Grosso</option> 			<option value="MS">Mato Grosso do Sul</option> 			<option value="MG">Minas Gerais</option> 			<option value="PA">Pará</option> 			<option value="PB">Paraíba</option> 			<option value="PR">Paraná</option> 			<option value="PE">Pernambuco</option> 			<option value="PI">Piauí</option> 			<option value="RJ">Rio de Janeiro</option> 			<option value="RN">Rio Grande do Norte</option> 			<option value="RS">Rio Grande do Sul</option> 			<option value="RO">Rondônia</option> 			<option value="RR">Roraima</option> 			<option value="SC">Santa Catarina</option> 			<option value="SP">São Paulo</option> 			<option value="SE">Sergipe</option> 			<option value="TO">Tocantins</option> 		  </select> 		</strong></td> 	  </tr> 	</table>   </form>
end.php

 

<?php $cep = isset($_GET["cep"]) ? preg_replace("/[^\d]/", "", $_GET["cep"]) : false; $numero = isset($_GET["numero"]) ? trim($_GET["numero"]) : ""; $logradouro = ""; $bairro = ""; $localidade = ""; $uf = ""; if ($cep) { 	$res = @file_get_contents("http://www.correios.com.br/servicos/falecomoscorreios/ctBuscaEndereco.cfm?cep=" . $cep); 	if ($res) { preg_match_all("#\.value\s*=\s*[\'](.*?)[\'][;]#", $res, $matches);	  $logradouro = $matches[1][0]; 	  $bairro = $matches[1][1]; 	  $localidade = $matches[1][2]; 	  $uf = $matches[1][3]; 	} } header("Content-type: text/plain"); echo $logradouro . ";" . $numero . ";" . $bairro . ";" . $localidade . ";" . $uf . ";" . $cep; ?>
Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

o site dos correiso nunca permitiu esse tipo de sistema nos sites deles, só pagando e eles tavam tirando esse link do ar aos poucos por compatibilidade interna e acredito que eles ja tiraram do ar esse serviço, porque na verdade era uma falha de segurança deles

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, depois que eu postei eu fui ver um link acima que você pediu para ir a um outro topico, acho eu que para evitar confusoes, como aconteceu comigo, deveria trancar...grato :)/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom tentei usar os exemplos e também não funcionou...

 

apenas não completa os campos preenchendo o cep, tanto faz usando IE ou firefox.

 

será que os correios bloquearam esses acessos por GET?

 

ou estou fazendo algo errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.