Avatar billede gecko Nybegynder
15. december 2002 - 20:38 Der er 22 kommentarer og
1 løsning

Variabel fra flash til php

Hej

Jeg har lavet en form i flash, hvor man kan skrive navn og email.
Disse felter har jeg smart nok kaldt "navn" og "email".

Nu vil jeg gerne sende indholdet af de 2 felter/variabler til et php dokument.(ikke via getURL).

Hvad gør jeg ???
Avatar billede gecko Nybegynder
15. december 2002 - 20:42 #1
Jeg har lavet den her:

on (release) {
    loadVariablesNum ("http://localhost/ml/subscribe2.php", 0, "POST");
    tellTarget (nyheder) {
        gotoAndPlay (11);
    }
}

Hvorfor virker det ikke ??
... og hvad sender den ? 2 variabler ??
Avatar billede barklund Nybegynder
15. december 2002 - 20:44 #2
loadVariables("min.php?navn="+navn+"&email="+email, _root);

Og i PHP:

$navn = $_GET["navn"];
$email = $_GET["email"];

(hvis du altså har slået global_vars fra som jeg plejer...)

Så kan PHP behandle data (putte i database eller sende mail) og sende et svar tilbage:

result=ok eller result=error

Og så vil du i din flash efter et kort stykke tid i _root have en variabel "result", der indeholder værdien som PHP'en har sat...

At variablen er i _root skyldes scriptet, der jo loader til _root som du kan se øverst... Dette kan du ændre:

loadVariables("min.php?navn="+navn+"&email="+email, this);
loadVariables("min.php?navn="+navn+"&email="+email, _parent.movieclip);
loadVariables("min.php?navn="+navn+"&email="+email, _root.movieclip);

/Barklund
Avatar billede barklund Nybegynder
15. december 2002 - 20:46 #3
Din funktion sender alle variabler i den tidslinie, som den eksisterer på... Så hvis dine inputfelter ligger i samme movieclip som knappen, så sender den begge de to variabler som POST til dit script... Men hvis knappen og inputfelterne ligger i forskellige movieclips, så bliver de ikke sendt...
Avatar billede barklund Nybegynder
15. december 2002 - 20:47 #4
Og nej, den sender ikke nødvendigvis kun 2 variabler, men derimod alle variabler i den pågældende tidslinie (også funktioner og objekter)... Derfor er det en god ide, at have en tomt movieclip, som du først kopierer variablerne ind i og derfra sender du dem så med POST eller GET... Og som et alternativ kan du skrive GET-variablerne direkte som i mit eksempel - men ikke med post...
Avatar billede gecko Nybegynder
15. december 2002 - 20:51 #5
jeg har det her i php'en

if (isset($_POST['navn'] , $_POST['email'])) {
  $navn = $_POST['navn'] ;
  $email = $_POST['email'] ;}

og det virker fint, når jeg sender fra en anden php fil .....
Avatar billede barklund Nybegynder
15. december 2002 - 20:52 #6
Jamen så er problemet som jeg skriver, at du ikke har din knap og dine inputfelter liggende i samme movieclip...
Avatar billede gecko Nybegynder
15. december 2002 - 20:53 #7
de ligger i samme movieclip og i samme layer
Avatar billede barklund Nybegynder
15. december 2002 - 20:55 #8
Nej de gør ej :o) For så ville ovenstående virke...

Prøv at erstatte din loadVariables med en getURL og prøv igen... Så kan du se, hvad der sker, når PHP'en modtager variablerne... Du kan eventuelt tilføje en

var_dump($_POST);

Øverst i din PHP, for at finde fejlen...
Avatar billede gecko Nybegynder
15. december 2002 - 21:01 #9
Hvis jeg laver en getURL, så kommer der en alertbox, som spørger om jeg vil gemme eller åbne "subscribe.php"
Avatar billede gecko Nybegynder
15. december 2002 - 21:03 #10
Hvor skal jeg slå dette fra ??

"(hvis du altså har slået global_vars fra som jeg plejer...)"
Avatar billede barklund Nybegynder
15. december 2002 - 21:03 #11
Så er det jo din fejl... Du afvikler lokalt uden at have en PHP-server kørende lokalt... Du skal lægge din swf i samme mappe som din PHP-fil og smide det op på serveren...
Avatar billede barklund Nybegynder
15. december 2002 - 21:04 #12
I din PHP config fil... Aner ikke hvor den ligger, men jeg plejer ikke at have det slået til for øjet sikkerhed - jeg står dog heller ikke personligt for server-opsætning...
Avatar billede gecko Nybegynder
15. december 2002 - 21:05 #13
php kører på maskinen, eller kunne jeg jo ikke køre alle de andre php dokumenter jeg har
Avatar billede gecko Nybegynder
15. december 2002 - 21:07 #14
Virker det ikke, hvis register_globals er sat til On ??
Avatar billede barklund Nybegynder
15. december 2002 - 21:08 #15
men når din flashfilm kalder den (uanset hvor den ligger) så kan jeg da af ovenstående fejl se, at browseren læser din PHP-fil rå og ubehandlet fra din computer og ikke som en PHP-fil... Hvad står der i adresse i det vindue, der popper op, og er det den rigtige adresse, som du ellers kan få til at virke...

Og skal det i sidste ende kører fra din egen computer? For lige så snart det ligger på en "rigtig" server, så har du ikke den slags problemer...
Avatar billede barklund Nybegynder
15. december 2002 - 21:10 #16
kan ikke huske det der config noget... Men det vil altid virke... forskellen er blot, at hvis en eller anden ting er slået til (om den hedder global_vars eller register_globals kan jeg ikke helt huske) så vil du bare kunne skrive:

$var

istedet for

$_POST['var']

men den anden findes alligevel...
Avatar billede gecko Nybegynder
15. december 2002 - 21:15 #17
hmmm, det virker ikke
Avatar billede gecko Nybegynder
15. december 2002 - 21:17 #18
$_POST['var']

skriver:

PHP Notice: Undefined index: var in C:\Inetpub\wwwroot\ml\subscribe2.php on line 9
Avatar billede barklund Nybegynder
15. december 2002 - 21:20 #19
ja, det er jo fordi variablen ikke findes, da den ikke er sat... Det var blot et eksempel. :o)

I dit tilfælde drejer det sig jo om:

$navn og $_POST["navn"]
Avatar billede gecko Nybegynder
15. december 2002 - 21:23 #20
hmm, hvad gør jeg så ??
Avatar billede barklund Nybegynder
15. december 2002 - 21:25 #21
Ja, du svarer enten på "Hvad står der i adresse i det vindue, der popper op, og er det den rigtige adresse, som du ellers kan få til at virke..." eller smider det op på din live-server...

Problemet lige nu er, at det hele er sådan set rigtig nok - det bliver bare ikke eksekveret ordentligt på din localhost... Så hvis det i sidste ende skal lægge her, så har du et problem - ellers er det som det skal være, men skal bare lægges op på den rigtige server...
Avatar billede gecko Nybegynder
15. december 2002 - 21:54 #22
ok, jeg prøver når jeg kommer hjem til min egen computer .... så må jeg se om det virker der.

indtil videre skal du have tak for hjælpen
Avatar billede trick Nybegynder
16. december 2002 - 21:58 #23
Hej som barklund skriver sender du hele filmens variabler når du bruger
loadVariablesNum ("http://localhost/ml/subscribe2.php", 0, "POST");’
Hvis du har defineret feltet til at være en variable som henholdsvis navn og email.
Jeg har nu via bitter erfaring måtte konstatere at den i visse tilfælde kan være bedre bare at navngiove feldterne og sætte varibalen i koden og når den sendes kun at sende de variabler der skal sendes..

Så mit bud villle være.:

on (presse){
    navn = navn.text;
    password = pass.text;
    snyd = Math.random()*5000;
    this.loadVariables("http://localhost/ml/subscribe2.php?navn="+navn+"&password="+password+"& snyd="+snyd);
}

Grunden til at jeg har snyd med er for at sikre mig at den ikke har nogle gamle variabler gemt/glemt i hukommelsen.

Nu ved jeg godt at det måske ikke er den nemmeste måde at gøre det på, men faktum er at du kan være 100% sikker hvad du sender af sted.

Hvis du så vil have flash til at give besked om at formen er sendt kan du evt. lave et check på det på følgende måde.

Frame 1.

ch = 0;
Stop();

Frame 2
If (ch==1){
gotoAndStop(_currentframe + 2);
}

Frame 3
gotoAndPlay(_currentframe –1);

Frame 4
Laver du en tak for din tilmelding eller hvad du nu vil I har bare koder stop() i din frame..
Men for at det skal virke skal du lige smide en ” gotoAndPlay(_currentframe + 1);” på din knap
Og lave en f.eks.:
<?php
if ($navn){
  $ch=1;
  echo "&ch=$ch&";
}
?>

Håber dette kan hjælpe dig
trick ;o)
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