MO
Busca Cep ViaCep dando erro
Pessoal estou tentando criar uma tela onde digito o cep e retorna os dados, porém ele está dando um erro conforme a imagem que estou anexando e o código é o seguinte:
- <?php
- class frmcep extends TPage{
-
-
- protected $form;
-
- function __construct()
- {
- parent::__construct();
-
-
-
- $this->form = new TQuickForm("Funcionarios");
-
- $rua = new TEntry('rua');
- $rua->setEditable(FALSE);
-
- $bairro = new TEntry('bairro');
- $bairro->setEditable(FALSE);
- $cep = new TEntry('cep');
- $cidade = new TEntry('cidade');
- $cidade->setEditable(FALSE);
- $uf = new TEntry('uf');
- $uf->setEditable(FALSE);
-
- //cep
-
- $buscacep = new TAction(array($this, 'oncep'));
- $cep->setExitAction($buscacep);
-
- // mascaras
-
-
-
- $cep->setMask('99999999');
-
- //validação
-
-
- $rua->addValidation('rua',new TRequiredValidator);
- $bairro->addValidation('bairro',new TRequiredValidator);
- $cidade->addValidation('cidade',new TRequiredValidator);
- $uf->addValidation('uf',new TRequiredValidator);
-
-
-
-
-
- $this->form->addQuickField('cep:',$cep,100);
- $this->form->addQuickField('Rua:',$rua,400);
-
- $this->form->addQuickField('Bairro:',$bairro,200);
- $this->form->addQuickField('Cidade:',$cidade,200);
- $this->form->addQuickField('UF:',$uf,30);
-
-
-
- parent::add($this->form);
- }
-
-
-
-
- /**
- * onSearch()
- * @param string $param 'cep'
- */
-
-
- public static function oncep($cep)
- {
- $cep = preg_replace("/\D/","", $cep);
- if ($cep != "")
- {
- $resultado = simplexml_load_string( @file_get_contents("http://viacep.com.br/ws/".$cep."/xml/"));
-
- $erro = (string) $resultado->erro;
- if ( !$erro )
- {
- $objects['cep'] = (string) $resultado->cep;
- $objects['logradouro'] = (string) $resultado->logradouro;
- $objects['complemento'] = (string) $resultado->complemento;
- $objects['bairro'] = (string) $resultado->bairro;
- $objects['localidade'] = (string) $resultado->localidade;
- $objects['uf'] = (string) $resultado->uf;
- $objects['unidade'] = (string) $resultado->unidade;
- $objects['ibge'] = (string) $resultado->ibge;
- $objects['gia'] = (string) $resultado->gia;
-
- return $objects;
-
- } else return FALSE;
- } else return FALSE;
-
- }
-
-
- }
- ?>
Talvez o file_get_contents esteja bloqueado no seu servidor, normalmente em servidor compartilhado ele fica bloqueado, então eu fiz o seguinte:
Usei desta forma:
amigo não sei mais o que faço, tentei o seu código e não tive êxito, tentei outras coisas sem sucesso. Tentei até mesmo o código javascript da viaCep e tb. não consegui :(
Assim funcionou aqui comigo:
?>
Chefe deu um erro:
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 126
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 129
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 130
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 131
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 132
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 133
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 134
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 135
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 136
Notice: Trying to get property of non-object in C:Vertrigowwwsisbs_testeappcontrolapresentacaoEncontraCepFormView.class.php on line 137
array(11) { ["CEP"]=> string(0) "" ["Logradouro"]=> string(0) "" ["Complemento"]=> string(0) "" ["Bairro"]=> string(0) "" ["Localidade"]=> string(0) "" ["UF"]=> string(0) "" ["Unidade"]=> string(0) "" ["IBGE"]=> string(0) "" ["GIA"]=> string(0) "" ["TipoLogradouro"]=> string(0) "" ["LogradouroSemTipo"]=> bool(false) }
Na linha 126 ai sua tem o q ?
126 - $erro = (string) $resultado->erro;
Amigo acho que descobri o problema, na minha casa eu utilizo a internet sem proxy e funcionou perfeitamente, acho que o proxy do trabalho não está permitindo fazer a busca, vou procurar o administrador e relatar este problema. O que acontecer eu repasso depois.
Deu certo, agora vou implementar no meu sistema, obrigado Leandro Coelho pela enorme ajuda e paciência