Forum » Programiranje » [Flash AS3] Povezava z MySQL
[Flash AS3] Povezava z MySQL
Maco0306 ::
Če je kdo malo bolj vešč programiranja v ActionScriptu 3, me zanima par zadevic v zvezi z povezavo z bazo MySQL.
V bistvu sem naredil stran, ki se zaenkrat nahaja na naslovu www.ab-objekt.si/index-s.html, vendar se stvar ko je dejansko postavljena na server noče povezati z bazo. Koje stran kar tako na računalniku pa deluje odlično.
Mislim si da bi mogoče lako bila kriva koda za povezavo z bazo. V ta namen sem uporabil razrede ASQL (http://asql.mooska.pl/).
In sicer sama koda zgleda nekako takole:
DA na hitro razložim kodo, 4je event listnerji so v bistvu nuja pri ASQL tak da tam mislim da ni problema, ko podatke dobim jih shranim v polje images in nato zaženem prikaz z funkcijo prizig().
Sem probal že marsikaj ampak niti ne javi napake. Sem na internetu našel tudi neke crossdomain.xml datoteke in jih poskusil vstaviti vsepovsod na serverju, a ni obrodilo sadov.
Tak da če kdo ve kaj bi lahko bla napaka, bi lepo prosil če mi pomaga.
PS. Podatki za povezavo z bazo so zakriti
V bistvu sem naredil stran, ki se zaenkrat nahaja na naslovu www.ab-objekt.si/index-s.html, vendar se stvar ko je dejansko postavljena na server noče povezati z bazo. Koje stran kar tako na računalniku pa deluje odlično.
Mislim si da bi mogoče lako bila kriva koda za povezavo z bazo. V ta namen sem uporabil razrede ASQL (http://asql.mooska.pl/).
In sicer sama koda zgleda nekako takole:
conn.addEventListener( SQLEvent.CONNECT, handleConnect );
conn.addEventListener( SQLError.SQL_ERROR, handleError );
conn.addEventListener( SQLEvent.SQL_OK, handleOK );
conn.addEventListener(SQLEvent.SQL_DATA, handleData);
conn.connect("host", "user", "pass", "database" , port); // host, user, pass, database, port
function handleConnect(e:SQLEvent):void {
//trace("Povezano z bazo!");
conn.query("SELECT * FROM slike");
}
function handleError(e:SQLError):void {
//trace("Napaka: " + e.text);
}
function handleOK ( evt:SQLEvent ) :void {
//trace("Command was succesfull ");
}
function handleData ( evt:SQLEvent ):void {
//trace("Podatki dobljeni!");
//you get result as an array of objects, every object is one row
//to get into value, just type evt.data[0].columnName etc
//connector.disconnect();
images = evt.data;
conn.disconnect();
prizig();
}
DA na hitro razložim kodo, 4je event listnerji so v bistvu nuja pri ASQL tak da tam mislim da ni problema, ko podatke dobim jih shranim v polje images in nato zaženem prikaz z funkcijo prizig().
Sem probal že marsikaj ampak niti ne javi napake. Sem na internetu našel tudi neke crossdomain.xml datoteke in jih poskusil vstaviti vsepovsod na serverju, a ni obrodilo sadov.
Tak da če kdo ve kaj bi lahko bla napaka, bi lepo prosil če mi pomaga.
PS. Podatki za povezavo z bazo so zakriti
- spremenil: Maco0306 ()
Binji ::
Ce se povezujes na trenutni racunalnik (localhost) je mogoce drugi username/pass za bazo kot pa na tvojem racunalniku.
Kdor ne navija ni Slovenc, hej, hej, hej!
Maco0306 ::
v bistvu je samo en user, in nima nobenih dodatnih pravic niti se jih ne da nastavit ..pač navadni user
v bistvu je baza na istem serverju kot sama flash stran ..sem tudi poskusil z localhost za host, zdaj imam za host kar ip ...
v bistvu je baza na istem serverju kot sama flash stran ..sem tudi poskusil z localhost za host, zdaj imam za host kar ip ...
Maco0306 ::
ok ...zgleda da noben ne ve nič kaj o tem ASQL.
Bom pa drugače vprašal.
Zanima me če je že kdo postavil kako flash stran, ki se povezuje z bazo in me zanima kako je naredu povezavo. Pa če ma kdo kaki primer bi blo super.
Bom pa drugače vprašal.
Zanima me če je že kdo postavil kako flash stran, ki se povezuje z bazo in me zanima kako je naredu povezavo. Pa če ma kdo kaki primer bi blo super.
680x0 ::
Uh, težav tule je lahko kar nekaj... dve, ki mi padeta na pamet...
1.) Flash je client-side aplikacija, ne teče na serverju, ampak v brskalniku vsakega obiskovalca spletne strani. Uporabniško ime v mySQL bazi je ponavadi skonfigurirano za "localhost" only, torej se nanj ne moreš povezati s clienta. Preveri, če ima mySQL uporabnik ustrezne pravice za dostopanje.
2.) Flash zaostruje "security policy" iz verzije v verzijo. Načeloma se noče povezovat na druge strežnike od tega s katerega je bil naložen, zadnje čase pa se noče povezovat niti na druge porte istega strežnika. To se da odpravit, kar imaš razloženo - http://code.google.com/p/assql/wiki/Sec... - tule.
V splošnem ni pametno clientom dovoljevati dostopanja do tvoje mySQL baze, tudi če je dostop "read only" (to še posebej preveri, da ti ne bodo kaj pisali po bazi).
Za stran, kot jo imaš ti, priporočam naslednji pristop:
- server side jezik (PHP, ASP, ...) naj ti iz baze pobere podatke in generira XML
- v flash importaj XML s spletne strani
... zadeva bo tako bolj varna, pa še z varnostnimi nastavitvami flasha ne boš imel problemov.
1.) Flash je client-side aplikacija, ne teče na serverju, ampak v brskalniku vsakega obiskovalca spletne strani. Uporabniško ime v mySQL bazi je ponavadi skonfigurirano za "localhost" only, torej se nanj ne moreš povezati s clienta. Preveri, če ima mySQL uporabnik ustrezne pravice za dostopanje.
2.) Flash zaostruje "security policy" iz verzije v verzijo. Načeloma se noče povezovat na druge strežnike od tega s katerega je bil naložen, zadnje čase pa se noče povezovat niti na druge porte istega strežnika. To se da odpravit, kar imaš razloženo - http://code.google.com/p/assql/wiki/Sec... - tule.
V splošnem ni pametno clientom dovoljevati dostopanja do tvoje mySQL baze, tudi če je dostop "read only" (to še posebej preveri, da ti ne bodo kaj pisali po bazi).
Za stran, kot jo imaš ti, priporočam naslednji pristop:
- server side jezik (PHP, ASP, ...) naj ti iz baze pobere podatke in generira XML
- v flash importaj XML s spletne strani
... zadeva bo tako bolj varna, pa še z varnostnimi nastavitvami flasha ne boš imel problemov.
Zgodovina sprememb…
- spremenil: 680x0 ()
Maco0306 ::
Aha razumem zadevo približno.
Torej direktna povezava z bazo ni bila najbolša ideja ...(čeprav tam piše da s tem ne bi smelo bit problema)
No zdaj če se spravim pisat zadevo preko PHP ...me najprej zanima tole ..kak bo server vedel kdaj zgenerirati xml dokument? ....to mi nikoli ni bilo najbolj jasno
Torej direktna povezava z bazo ni bila najbolša ideja ...(čeprav tam piše da s tem ne bi smelo bit problema)
No zdaj če se spravim pisat zadevo preko PHP ...me najprej zanima tole ..kak bo server vedel kdaj zgenerirati xml dokument? ....to mi nikoli ni bilo najbolj jasno
680x0 ::
Saj načeloma povezava Flash -> mySQL funkcionira, moraš pa pravilno nastaviti userja v mySQL in ugoditi zahtevam Flasheve varnostne police.
Ni pa to najboljša ideja z varnostnega stališča. Saj, če je vse nastavljeno, kot je treba, zadeva štima, ampak uporabniku dati neposreden dostop do baze je nekaj, čemur se je v splošnem pametno izogniti. Drug problem je, da so nekateri uporabniki na šihtu recimo za kakim zagamanim firewallom, ki jim skozi ne spusti ničesar drugega kot WWW promet in bo te mySQL requeste mirno zablokiral.
Glede PHPja pa takole. XML generiraš enako kot HTML, flash pač dostopa do nekega naslova ( http://example.com/xml.php ) in skripta vsakič znova iz baze prebere podatke in generira XML. Ne pozabi nastavit output headerja ( header("Content-type: text/xml"); ), za direkten output iz baze v XML pa lahko uporabeš že kak narejen class - http://pear.php.net/package/XML_Query2X...
Glede na to, da se podatki ne spreminjajo veliko, lahko zadevo kasneje optimiziraš, da se XML ne generira vsakič znova, ampak za začetek bo tole čisto ok.
Ni pa to najboljša ideja z varnostnega stališča. Saj, če je vse nastavljeno, kot je treba, zadeva štima, ampak uporabniku dati neposreden dostop do baze je nekaj, čemur se je v splošnem pametno izogniti. Drug problem je, da so nekateri uporabniki na šihtu recimo za kakim zagamanim firewallom, ki jim skozi ne spusti ničesar drugega kot WWW promet in bo te mySQL requeste mirno zablokiral.
Glede PHPja pa takole. XML generiraš enako kot HTML, flash pač dostopa do nekega naslova ( http://example.com/xml.php ) in skripta vsakič znova iz baze prebere podatke in generira XML. Ne pozabi nastavit output headerja ( header("Content-type: text/xml"); ), za direkten output iz baze v XML pa lahko uporabeš že kak narejen class - http://pear.php.net/package/XML_Query2X...
Glede na to, da se podatki ne spreminjajo veliko, lahko zadevo kasneje optimiziraš, da se XML ne generira vsakič znova, ampak za začetek bo tole čisto ok.
Zgodovina sprememb…
- spremenil: 680x0 ()
Maco0306 ::
ok ...sem porihtal zadevo
zdaj z php zgeneriram xml in ga importam v flash
ob tem sm se naučil tud dosti phpja in ugotovil da je v bistvu ful preprost in močen
v glavnem zadeva teče ...hvala C=64 da si pomagal
zdaj z php zgeneriram xml in ga importam v flash
ob tem sm se naučil tud dosti phpja in ugotovil da je v bistvu ful preprost in močen
v glavnem zadeva teče ...hvala C=64 da si pomagal
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [C#] mysql povezavaOddelek: Programiranje | 2212 (1953) | Miko55 |
» | [C#/VS] connection to DBOddelek: Programiranje | 1024 (916) | KalEl |
» | Težave z MySQL povezavoOddelek: Izdelava spletišč | 2665 (2270) | la_mer |
» | Flash CS4 password access AS 3.0Oddelek: Programiranje | 1594 (1336) | 680x0 |
» | MySQL in czsOddelek: Izdelava spletišč | 3611 (2701) | krho |