PHP -> Flash og tilbage.

Tags:    php

Hey derude.

Jeg er meget ny i PHP og Flash og er stuck med et par problemer jeg håber I kan hjælpe med.

Første spørgsmål:
Jeg skal have Flash til at kommunikere med en database via PHP.

Foreløbigt har jeg sendt teskt fra 2 felter i min database til 2 tekstfelter i Flash med dette PHP script:

Fold kodeboks ind/udKode 


Det virker også fint så langt.

Men så har jeg yderligere et tekstfelt og en knap i Flash, som jeg gerne ville bruge til at sende tekst tilbage til de samme felter i databasen som ovenstående, og overskrive det der allerede står.

Er der en nogenlunde overskuelig løsning på det?


Andet spørgmsmål:
Når flash modtager tekst fra databasen, kan Æ, Ø og Å ikke vises. I stedet vises der nogle mærkelige tegn.

Jeg har prøvet at indsætte " header("Content-type: html/text; charset iso-8859-1"); " øverst i mit PHP-script, men det gør umiddelbart ingen forskel.

Håber I kan hjælpe, på forhånd tak :)



9 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Det er helt i orden, man skal jo lige lære det ;)

Du ser PHP-siden for sig selv ved at gå ind på siden via din browser. Eksempel:

http://minside.dk/min_php-fil.php

Du skal så selvfølgelig bare udskifte med dit domæne og den rigtige sti til din PHP-fil.

Og nu til at sende data:

Kode i Flash-filen. Eksemplet tager udgangspunkt i en Flash-fil med én frame:

Fold kodeboks ind/udKode 

(Jeg er ikke klar over hvor ActionScript-hardcore du er, så hellere for meget forklarig, end for lidt :))

Kode til PHP-filen, der skal modtage dataene:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 15.12.2008 16:00 af Bruger #10572
Er det ActionScript 2 eller 3 du bruger?

Ved problemer med æ, ø og å, har du så prøvet at åbne php-siden for sig selv, uden Flash? For hvis ikke skal du lige prøve at se om det er i PHP-dokumentet eller i Flash encoding problemerne opstår, selvom det jo nok er i PHP.



Det er ActtionScript 3, men ehh - hvordan er det lige jeg åbner php-siden for sig selv, uden Flash?
- Som sagt, jeg er meget ny i det her :P



Mange tak for et uddybende svar :)
- Det er super, for jeg er nemlig ret dum til ActionScript osse.. Åbenbart så dum, at jeg fik skrevet ActionScript 3 selvom det alligevel faktisk var 2! >.< - Er der meget stor forskel i dette tilfælde?

Så fik jeg osse prøvet med PHP-filen udenom Flash, og der kan den ganske vist vise Æ, Ø og Å'erne fra databasen, så det virker som om det er i Flash problemet med encoding opstår.

Henrik.



Jo, desværre... Der er ret stor forskel på AS2 og 3, men det gør ikke noget, så får jeg jo også genopfrisket lidt :)

Samme scenarie, bare med AS2:

Fold kodeboks ind/udKode 


PHP-kode:

Fold kodeboks ind/udPHP kode 


Mht til problemer med æ, ø, å osv i Flash-filen, skal du bare bruge utf8_encode() i din PHP-kode.
Det vil se sådan ud i det kode du poste til at starte med:

Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 15.12.2008 22:12 af Bruger #10572
Tusind tak, du er sgu skarp :)
Problemet med Æ, Ø og Å løste sig.

Det ser osse ud til at flash-scriptet virker efter hensigten, men jeg får alligevel "ups, der skete en fejl"-beskeden, når jeg prøver.

Jeg tror det er i denne linje i php'en at det går galt:
Fold kodeboks ind/udKode 


Jeg har i tabellen "testTable" lavet 2 felter: "testfelt" - hvor jeg gerne vil have mit info fra flash sendt til, og så yderligere et "id" felt.

Jeg har prøvet at udskifte 'id' og 'text' med navnene på mine felter, men det virker ikk rigtigt, og jeg kan heller ikk lige gennemskue hvordan jeg skal sætte det op, for at få den til at finde en speciel række med fx 'id' 4, og så derefter indsætte info fra flash i "testfelt" i netop denne række.

Henrik.



Tak, tak.

Nå okay, det lader til at være et MySQL-problem.

Den præcise tabel jeg har brugt kan oprette med denne SQL-kode:

Fold kodeboks ind/udSQL kode 


Hvis du gerne vil opdatere en række i stedet for at indsætte en ny (som jeg gør i eksemplet), skal du bruge UPDATE i dit SQL-query i stedet for INSERT INTO.

Det ser sådan her ud, hvis vi f.eks. leder efter rækken med ID 4:

Fold kodeboks ind/udSQL kode 


I eksemplet ville det se sådan ud:

Fold kodeboks ind/udPHP kode 


Hvis du vil opdatere flere felter tilføjer du bare flere SET kommandoer:

SET `text` = "Ny tekst", SET `name` = "Lasse", SET `city` = "Jyderup" ... osv...

I øvrigt er det altid en god idé at teste indsættelsen af data undenom Flash og PHP, for så er det lettere at se hvor det går galt. Dette er især let hvis man har phpMyAdmin til databasestyring, som er noget mange webhosting-firmaer har.



Indlæg senest redigeret d. 16.12.2008 15:39 af Bruger #10572
Genialt mand, nu virker det perfekt :D

Mange tak for hjælpen!



Det var så lidt ;)



t