Avatar billede maqhem Nybegynder
09. januar 2006 - 21:23 Der er 18 kommentarer og
1 løsning

Så skal det altså til at være!

Hej! Nu har jeg bakset med database og skidt og møg - men der er aldrig blevet en brugbar database ud af det :(

Så har jeg prøvet med SharedObjects, men det er jo bare nogle alt for let brudte filer, så dem kan jeg heller ikke bruge... Men nu vil jeg altså bare have det på plads!

Hvordan laver jeg en knap i Flash, som hvis man klikker på den, så skal der exporteres variabler til et php-script, der smider datane i en database - UDEN AT MAN SKAL SKIFTE TIL PHP-SIDEN (!!!).
Og hvordan hentes datane tilbage til Flash fra databasen?

Kan godt finde ud af at scripte php-scriptet - om ikke andet så finder jeg bare ud af det, for det er vel ikke anderledes end normalt database brug, vel? Mit problem er bare, at der skal smides data til php, men man SKAL stadig blive på præcis sammen side, den gemmer bare datane "i baggrunden" hvis man kan sige det sådan.

Jeg håber VIRKELIGT at I kan hjælpe, for jeg brænder utrolig meget for at kunne lave en database og ændre/tilføje/trække data ud med Flash :)

Har forsøgt en del gange, og har også prøvet ved at kigge på tidligere stildte spørgsmål, men uden held. Så derfor vil jeg IKKE bare have smidt et link som svar.

Det skal så lige siges, at jeg ikke har mit eget site endnu, men dette blokkerer vel ikke for muligheden for at redigere i en database med flash via php når jeg har easyPHP, vel? hvis jeg ikke kan uden et web-site, så sig lige til, så opkøber jeg mig lige et...

Nicolaj
Avatar billede stephanryer Nybegynder
22. januar 2006 - 21:19 #1
når flash skal have data fra en fil benyttes

loadVariables(filnavn)

hvor filnavn er navnet på den fil der indeholder variablerne. I dette tilfælde din php fil.

For at flash kan benytte disse variabler skal de står på en bestemt måde i flashfilen. syntaksen er som følger:

var1=value1&var2=dette er var 2&mitNavn=Stephan Ryer

osv.

Du laver så en php fil der genererer disse oplysninger og stiller dem op på ovenstående måde. Herved kan flash læse variablerne.

Hvis du vil have kørt en php fil uden at åbne siden skal du IKKE benytte getURL men bare nare flash til at køre den ved at lade som om du vil loade variabler fra den. Bare gør sådan her:

loadVariables(minPhpFil)

Selvom der ikke ligger nogen gyldige variabler i denne php-fil vil den stadig blive kørt.

Og lige en ting til mht. at loade variabler ind:
Jeg har selv gjort dette for nylig og har opdaget at browseren nogen gange cacher fil så man ikke får de nyeste data. Dette kan undgås ved at sætte en dummy variabel i slutningen af filnavnet således:

loadVariables("minfil.php?var="+random(99999));

På denne måde narer man browseren til at tro at der skal hentes en ny fil og man undgår problemer mht. caching.

Og så lige en sidste ting:

Du skal lægge din .swf fil i samme mappe som din php fil ligger i og tilgå filen lokalt (ex loadVariables("minfil.php") og ikke globalt (ex loadVariables("http://www.minside.dk/minfil.php")), da de fleste browsere ikke tillader et flashobjekt at tilgå en anden hjemmeside.

Håber alt dette giver mening. Ellers må du lige sige til :)
Avatar billede maqhem Nybegynder
22. januar 2006 - 21:53 #2
Det ser jo alt sammen vældig fint ud, men loadVars kræver minimun 2 parametre. Hvad skal jeg så?
Avatar billede maqhem Nybegynder
22. januar 2006 - 21:54 #3
eller loadVariables hedder den jo
Avatar billede stephanryer Nybegynder
22. januar 2006 - 21:56 #4
hov ja, det glemte jeg. Benyt fx

loadVariables("minside.php?"+random(99999),"","POST");
Avatar billede stephanryer Nybegynder
22. januar 2006 - 21:57 #5
mht. metoder til at undgå caching af din dynamiske side så har jeg min dummy-variabel-metode fra denne side:

http://www.permadi.com/tutorial/flashcache/
Avatar billede maqhem Nybegynder
22. januar 2006 - 22:02 #6
php:

<?php

$hent = "hello!"

print $hent;

?>

Flash:

loadVariables("minside.php","","POST");
rOutput = hent;

Hvorfor duer det ikke?
Avatar billede maqhem Nybegynder
22. januar 2006 - 22:05 #7
Det er jo næsten så simpelt som det kan blive. Hvorfor duer det så ikke?
Avatar billede stephanryer Nybegynder
22. januar 2006 - 22:25 #8
Husk at du skal definere variablens navn.

prøv med

<?php

$hent = "hello!"
print "minvar=".$hent;

?>

Hvis du loader variablerne ind i roden kan du tilgå dem via _root.minvar fx.
Avatar billede stephanryer Nybegynder
22. januar 2006 - 22:27 #9
Prøv evt at starte ud med at teste fra en txt fil. Så kan du tage opgaven i to trin:

1. trin: load variablerne fra en fil.
2. trin: generer dynamiske variabler med php-filen.
Avatar billede maqhem Nybegynder
23. januar 2006 - 06:15 #10
med denne kan jeg hente fra en txt-fil, men ikke fra min php:

nlv = new LoadVars();
nlv.onLoad = function() {
    rGet = this["minvar"];
}
nlv.load("mytxt.txt");

Men erstatter jeg mytxt.txt med myphp.php siger den undefinded. Kunne du støbe et flash- og et php-script sammen?

For dette er ikke første gang jeg prøver, og jeg er stadig helt lost :(
Avatar billede maqhem Nybegynder
23. januar 2006 - 06:22 #11
php:

<?php
print "minvar=hello";
?>

flash:

loadVariables("myphp.php","","POST");
rOutput = _root.minvar;

duer heller ikke. Rigtig ufedt!
Kunne du ikke lave en zip-fil?
Avatar billede stephanryer Nybegynder
23. januar 2006 - 12:11 #12
Well du skal sørge for at php filen ligger på en server hvor den bliver afviklet som php fil før den bliver hentet. For hvis ikke den gør det, så ser flash jo bare indholdet som php-kode hvilket ikke vil virke.

Du skal desuden være opmærksom på at der går lidt tid før variablerne er loadet ind. Det er derfor en god ide at sende en check-variabel med som den sidste fx kaldet statusVar.

For så vil du ik flash kunne spørge:

if(statusVar != undefined){
    //Variablerne er hentet ind og kan benyttes
}else{
  //Variablerne er ikke hentet endnu. Vent lidt.
}
Avatar billede stephanryer Nybegynder
23. januar 2006 - 12:11 #13
Kan lige støbe noget samen iaften når jeg kommer hjem.
Avatar billede maqhem Nybegynder
23. januar 2006 - 14:54 #14
hvor lang tid går der før de er hentet ind? og skal jeg i så fald lave min loadVariables i en onEnterFrame?
Avatar billede stephanryer Nybegynder
23. januar 2006 - 14:56 #15
du kan lave testen i en onEnterFrame med loading af variablerne skal kun udføres én gang.
Avatar billede maqhem Nybegynder
23. januar 2006 - 14:58 #16
men mit flash og php-en er jo ikke på en server - det er på min egen maskine. Har ikke et web-site endnu... Hvad så?
Avatar billede stephanryer Nybegynder
23. januar 2006 - 14:59 #17
så er det derfor det ikke virker. Du må teste med en txt fil indtil du får dit site op så.
Avatar billede maqhem Nybegynder
21. december 2006 - 08:12 #18
Beklager... Fik først købt sitet i forgårs, så har først fået det testet nu.

Takker, og undskylder forsinkelsen af svaret :)
Avatar billede stephanryer Nybegynder
21. december 2006 - 11:15 #19
Takker - Altid dejligt med lidt uventede point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester