Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: laczenie sie serwera z baza danych
Forum PHP.pl > Forum > Bazy danych
gokuf1ghter
Witam wszystkich.

Zrobilem prosta gierke we flashu z rankingiem.

nicki oraz punty graczy sa zapisywane w bazie danych mysql na tym samym serwerze, na ktorym jest aplikacja.
Aplikacja laczy sie z baza danych za pomoca AMFPHP.

Problem jest taki, ze kiedy aplikacje mam na dysku, ranking dziala i wszystko pracuje ok, natomiast jezeli wrzuce aplikacje na serwer (ten sam serwer gdzie jest baza danych lub na inny serwer), ranking nie dziala i aplikacja nie wyswietla wynikow w rankingu:/ Nie wyskakuje zaden blad, nic sie nie zawiesza, po prostu nie ma polaczenia z baza danych. Pozostala czesc aplikacji (ktora nie wymaga komunikacji z baza danych) dziala poprawnie. Spotkaliscie sie kiedys z takim problemem?

Z gory dziekuje za info.

Pozdrawiam
Grzesiek
zbig
Witam !

Szukanie bledow w takich przypadkach jest dosc skomplkowane.
Sproboj na poczatek komunikacji Twojej Flashki z AMF-em. Zrob we Flashu jakiegos "trace", ktory sprawdzi, czy w ogole komunikuje sie on z "getway" AMF-a ( prostego returna z AMF, ktorego odbierze Flash ).
Jezeli wszystko bedzie ok, musisz sprawdzic w konsoli doloczonej do AMF, czy Twoja klasa pracuje poprawnie z mysql-em i zwraca przewidywane wyniki.

Jak znam zycie problem tkwi w "allowDomain", ale obym sie mylil

Pozdrawiam

[Edit]

PS.

jezeli pracujesz pod domena np: http://www.moja_super_gierka.pl, twoj embedowany Flash musi miec pelny link tzn. : http://moja_super_gierka.pl/swf/gierka.swf, a AMF dostepny powinien byc pod adresem http://moja_super_gierka.pl/amfphp/getway.php i w ten sposob powinienes pokazywac Flashowi AMF-a.
gokuf1ghter
dzieki za odpowiedz. Nie mam jako takiego folderu AMFPHP na swoim serwerze. Wszystkie pliki AMFPHP sa w katalogu glownym serwera (gateway.php również). Gierke skopiowalem do katalogu services jak i do glownego katalogu serwera. w zadnym przypadku nie dziala. Klasy amfphp (ktore wywoluje flash przez swoje metody: (this.call("ReadValues.readVal", readUserRes)wink.gif, znajduja sie w katalogu services.

Kiedy wejde do katalogu browser, uruchamia sie strona z amfphp, gdzie znajduja sie wszystkie klasy napisane dla potrzeb flesha i ktore znajduja sie w katalogu services. Z poziomu browsera amfphp, moge wywolywac metody tych klas i wszystko dziala ok (metody zapisuja dane do bazy danych lub owe dane odczytuja). Kiedy aplikacja jest na moim dysku twardym, tez wszystko dziala ok. Niestety jezeli aplikacje wrzuce na serwer, nic nie dziala;d

Ponizej wkleje przykladowy kod flasha oraz amfphp:

flash:
Kod
public function readUser():void{
            this.call("ReadValues.readVal", readUserRes);
        }


amfphp:
  1. <?php
  2. class ReadValues{
  3.  
  4. var $localhost = "mysql5";
  5. var $dbname = "nazwa mojej bazy danych";
  6. var $root = "moj root";
  7. var $pass = 'moje haslo do bazy';
  8.  
  9. function ReadValues(){
  10. $this->conn = mysql_pconnect($this->localhost, $this->root, $this->pass);
  11. mysql_select_db($this->dbname);
  12.  
  13. }
  14.  
  15. function readVal(){
  16. return mysql_query("SELECT nick_name FROM narzadyUser");
  17.  
  18. }
  19. function userLog($nick){
  20. return mysql_query("SELECT nick_name, pass, oczy, serce, watroba, nerki FROM narzadyUser WHERE nick_name = '$nick'");
  21. }
  22. function deleteUser($nick){
  23. return mysql_query("DELETE FROM narzadyUser WHERE nick_name = '$nick'");
  24. }
  25. function getTrade(){
  26. return mysql_query("SELECT eyes, heart, liver, kidneys FROM narzadyTrade");
  27. }
  28.  
  29.  
  30.  
  31.  
  32. }
  33.  
  34. ?>


zbig
Witam!

Jezeli w browserze AMF Twoje klasy dzialaja poprawnie to juz polowa sukcesu.
Caly problem tkwi w komunikacji Flasha z AMFPHP.
Wrzuc tego Flasha do katalogu glownego Serwera tak aby dostep do niego byl w sciezce http://mojastrona/mojswf.swf .
Jak rozumiem dostep do gateway masz w sciezce http://mojastrona/gateway.php.

Jezeli tak jest, to we Flashu podaj pelny link do gateway czyli zaden http://localhost/gateway.php czy cos podobnego , ale http://mojastrona/gateway.php .
Wszystko musi byc w jednej domenie, zadne subdomeny etc.

Zobacz we Firebugu, czy Flashowi udaje sie polaczyc z AMF ( czy go po prostu widzi ) i ewentualna odpowiedz z gatewaya.

Jezeli to wszystko nie pomoze, to i ja nie bede w stanie bez debugowania odpowiedziec gdzie jest pies pogrzebany wink.gif

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.