• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

korvina

localhost vs internet

8 mensagens neste tópico

Bom pessoal preciso de mais uma ajuda...

tenho o meu site (com flash + php + xml + mysql) a funcionar a 100% localmente...

arranjei um free web host (http://www.000webhost.com/)

fiz o upload dos .php, do swf e do index.html com o swf.

no servidor criei a base de dados igual à que tenho localmente e tá tudo a correr...

acontece que quando entro no url do site e começo a passear, o send/retrieve de dados não funciona...

dá-me o erro:

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://*******.netne.net/teste.swf cannot load data from http://www.*******.netne.net/listar.php.

at ihmas3_fla::MainTimeline/frame39()

at flash.display::MovieClip/gotoAndPlay()

at ihmas3_fla::MainTimeline/listClick()

Error #2044: Unhandled securityError:. text=Error #2048: Security sandbox violation: http://*******.netne.net/teste.swf cannot load data from http://www.*******.netne.net/adiciona.php.

at ihmas3_fla::MainTimeline/frame25()

at flash.display::MovieClip/gotoAndPlay()

at ihmas3_fla::MainTimeline/voltar5()

etc

Alguém sabe resolver isto?!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom fiz mais uns testes e li no google acerca dum ficheiro chamado crossdomain.xml que supostamente dá permissão ao swf para aceder a outros domínios.

tentei utilizar mas não consegui resolver com isso...

também descobri que no meu .fla me refiro-me sempre aos ficheiros com o caminho "http://www.*******.netne.net/<ficheiro>.php" e se no browser aceder pelo mesmo caminho com o www deixa de dar este sandbox error...

contudo dá-me outro erro...

TypeError: Error #1088: The markup in the document following the root element must be well-formed.

at ihmas3_fla::MainTimeline/LoadXML()

at flash.events::EventDispatcher/dispatchEventFunction()

at flash.events::EventDispatcher/dispatchEvent()

at flash.net::URLLoader/onComplete()

acontece que localmente já corri o php que gera o xml e funciona...  :eek: :mad:

na barra de estado aparece "A transferir dados de http://www.*******.netne.net..." indefinidamente...  :rant_01:

parece que ele tenta enviar/receber dados mas nunca chega a completar a operação...

o código php que gera xml é o seguinte:

<?php

$con = mysql_connect($mysql_host,$mysql_user,$mysql_password);

if (!$con){

die('Could not connect: ' . mysql_error());

}

mysql_select_db($mysql_database, $con);

$query = "SELECT * from `Storer` ORDER BY `CodBarras` ASC";

$resultID = mysql_query($query,$con) or die ("Data not found");

$xml_output = "<?xml version=\"1.0\"?>\n";

$xml_output .= "<Produtos>\n";

while ($dados = mysql_fetch_array($resultID)){

$codigo = $dados["CodBarras"];

$nome = $dados["Nome"];

$categoria = $dados["Categoria"];

$quantidade = $dados["QuantidadeExistente"];

$xml_output.= "<Produto>\n".

"<Codigo>".$codigo."</Codigo>\n".

"<Nome>".$nome."</Nome>\n".

"<Categoria>".$categoria."</Categoria>\n".

"<Unidades>".$quantidade."</Unidades>\n".

"</Produto>\n";

}

$xml_output .= " </Produtos>";

header("Content-type: text/xml");

echo $xml_output;

?>

o codigo em flash as3 que carrega o xml é o seguinte:

stop();

import flash.text.*;

import flash.events.*;

import flash.display.*;

import flash.xml.*;

import flash.net.*;

import fl.controls.DataGrid;

import fl.controls.dataGridClasses.DataGridColumn;

import fl.data.DataProvider;

//datagrid

var dg:DataGrid = new DataGrid();

var c1:DataGridColumn = new DataGridColumn("Codigo");

c1.width = 75;

var c2:DataGridColumn = new DataGridColumn("Nome");

var c3:DataGridColumn = new DataGridColumn("Categoria");

c3.width = 75;

var c4:DataGridColumn = new DataGridColumn("Unidades");

c4.width = 75;

dg.move(112.1,158.3);

dg.setSize(578.9,231.7);

dg.addColumn(c1);

dg.addColumn(c2);

dg.addColumn(c3);

dg.addColumn(c4);

addChild(dg);

var xmlLoader:URLLoader = new URLLoader();

var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("http://www.*******.netne.net/listar.php"));

function LoadXML(e:Event):void

{

xmlData = new XML(e.target.data);

var dp:DataProvider = new DataProvider(xmlData);

dg.dataProvider = dp;

}

...

ALguem sabe o que se passa!?  :D:P:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Como já tem acontecido com alguns elementos a utilização de servidores free por vezes podem ajudar a baralhar ideias... Isto é, tem bloqueios de acessos a ficheiros e por vezes temos de tentar n vezes com formatos não convencionais...

Falando agora das tuas dúvidas... Crossdomain.xml é um ficheiro, tal como referis-te, que terá de estar alojado na raiz do servidor onde o teu SWF está a tentar aceder. Tem como função permitir o acesso entre url's diferentes.

Para iniciares os testes poderás instalar a aplicação bastante útil fireBUG. É um addon para o firefox que te ajudará bastante a identificar onde está o problema da tua aplicação.

Instala e tenta correr a aplicação e verifica o registo de erro que te aparece para podermos verificar onde está o problema.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desde já muito obrigado pelo reply pouic  :D

quanto ao firebug:

This add-on requires the not-yet released Firefox 3.5b4

edit: já encontrei a versão 1.3.3 compatível com o FF 3.0 :P

quanto ao crossdomain.xml:

todos os meus ficheiros estão no public_html do mesmo url por isso exclui-o

----------

já instalei o firebug mas não sei mexer bem nisto  :-[

help needed...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

bom parece que o problema era mesmo do host... encontrei um novo e já funciona (quase tudo..  :hmm:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok vamos por partes...

Firebug...

é bastante simples de utilizar... eu no início tb me vi um pouco às aranhas mas com o uso não consigo passar sem ele... :)

se deres uma olhadela no

tens n vídeos a demonstrar funcionalidades...

Mas podes começar por activar sempre o firebug no menu "net" colocas "Enabled". Depois sempre que acedes a um url no separador NET vai aparecer os elementos que são carregados da página...

No separador HTML podes consultar o código todo da página e identificares os elementos...

Resumindo perdes 5 10 min a "carregar em tudo" e percebes logo o potencial da aplicação :)

Quanto ao crossdomain, falas que "todos os meus ficheiros estão no public_html do mesmo url por isso exclui-o" ... não é bem assim se um dos teus swf tentar aceder a conteúdo externo ao teu servidor deverá existir um crossdomain na raiz do servidor secundário...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nem me lembrei de ir ao youtube ver  :-[...

tenho de perder uns bocadinhos com isso  :)

em relação ao meu swf só consulta conteúdos internos ao meu server...

já consegui meter tudo online e a funcionar... era apenas problema de host porque mal troquei funcionou logo.

mais uma vez obrigado pelos teus comentários/ajuda pouic  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:) estamos aqui para isso :) partilha de ideias / dicas...

Por vezes esses free hosts tem que se lhe diga... Ficamos a partir pedra para nada... :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora