Avatar billede lubker Nybegynder
07. maj 2004 - 19:05 Der er 29 kommentarer og
1 løsning

loginsystem flash - php - mysql

Hej.
Jeg har en flasside, med et brugernavn og password felt.
Det jeg nu gerne skulle frem til er ved klik på ok-knappen, sendes oplysningerne til en php-side, som krypterer passwordet (md5) og derefter tjekker om brugernavnet eksisterer og passer medpasswordet, hvorefter den sender et resultat tilbage.
brugerstatus = inside (hvis ok)
brugerstatus = outside (hvis fejl)

Hvordan gør jeg det...
Avatar billede fangel Nybegynder
07. maj 2004 - 19:34 #1
ok - kan ikke hjælpe dig meget med Flash delen... for programmere selv PHP og arbejder sammen med en der laver Flash (pyroman_pg hedder han her på E)

i flash:
---
loadVariables("./sti/til/php-script.php?username=" + variabelMedBrugernavn + "&paswd=" + variabelMedPassword, "get");

søg lidt på E, hvis der skal mere til end det...
---

i php:
---
<?php
if(isset($_GET['username'], $_GET['paswd'])){ // varuablerne med brugernavn + password findes
  // connect til database
  $db = mysql_connect("mysql-host", "mysql-user", "mysql-paswd")or die("error=" . mysql_error());
  mysql_select_Db("mysql-database", $db)or die("error=" . mysql_error());

  // fetch username / password, krypter password
  $usr = $_GET['username'];
  $pwd = md5($_GET['paswd']);

  // se om brugeren findes i databasen
  $query = mysql_query("SELECT etFeltIDinDatabase WHERE brugerFelt='$usr' AND passwordFelt='$pwd'")or die("?error=" . mysql_error());
  if(mysql_num_rows($query) == 0) // bruger findes ikke
    echo "brugerstatus=outside";
  else // bruger findes
    echo "brugerstatus=inside";
}
else // variablerne findes ik
  echo "error=You+Suck!";
?>
---

Morten
Avatar billede _k Nybegynder
07. maj 2004 - 19:45 #2
Principielt er det vel for sent at kryptere når brugerens data allerede ER sent fra Flashplayeren over nettet til din php-server?

Du kan bruge LoadVars-objektet til at sende og modtage data. Den property jeg vil anbefale dig at bruge hedder sjovt nok "sendAndLoad", men du kan også nøjes med at bruge en standard LoadVars metode, da du vel ikke behøver at modtage noget fra start? Altså du behøver ikke at loade noget ind, derefter sende for endelig at modtage igen.

Du kan finde mere om sendAndLoad her:
http://www.eksperten.dk/spm/494519

..og søg i denne kategori på "LoadVars" og du vil finde en masse!

(loadVariables døde med Flash 5.0. Dem der stadigvæk bruger det, er åbenbart lidt ligeglade med om deres applikationer virker andre steder end på deres egen PC - man kan nemlig snildt i en masse tilstande som denne metode ikke tager hånd om - men det gør LoadVars (ER jeg i virkeligheden sælger fra Macromedias AS afdeling??? :o) )
Avatar billede fangel Nybegynder
07. maj 2004 - 19:56 #3
_k -> jeg bøjer mig ;) (men PHP scriptet er nu godt nok ;))
Avatar billede lubker Nybegynder
07. maj 2004 - 19:59 #4
Kan ikke lige se hvordan jeg skal bruge LoadVars,og sende det med GET metoden i flash.
Avatar billede _k Nybegynder
07. maj 2004 - 20:06 #5
minLoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  trace("her modtager du måske en fejl eller en '10-4 pass og bruger er korrekt!");
}

minKnap.onPress = function() {
  minLoadVars.load("enEllerAndenPHPFil.php?bruger=" + inputfeltBruger.text + "&pass=" + inputfeltPass.text);

...og så har du en knap der hedder "minKnap" og 2 inputfelter som hedder det samme som ovenfor.

(men her er hverken brugernavn eller password krypteret, så det skal gøres særskilt)
}
Avatar billede lubker Nybegynder
07. maj 2004 - 20:18 #6
kan ikke helt få det til at virke. PHP-delenhar jeg testet, og det virker som det skal, så det er vist nærmere i flash den er gal.

Når jeg trykker på knappen, går den videre til en scene kaldet login.
Hvor følgende kode er skrevet:
minLoadVars = new LoadVars();
minLoadVars.onLoad = function() {
}
minLoadVars.load("login.php?username=test&paswd=test");

har oprettet en bruger med navn og passwordet: test
Avatar billede _k Nybegynder
07. maj 2004 - 20:24 #7
Arbejder du videre på en fil andre har lavet? Hvilken version af Flash arbejder du med? Skriver du scriptet på første frame i Flash? Hvad outputter din php-fil? (både ved rigtigt og forkert)

Du skal inde i minLoadVars.onLoad = function() {} specificere hvad du vil i det tilfælde brugeren ER logget ind, og hvad der skal ske hvis han ikke er logget ind.
Avatar billede lubker Nybegynder
07. maj 2004 - 20:28 #8
Jeg har selv lavet hele flash filen.
Bruger Flash MX prof
scriptet er screvet i 2. frame i en sene kaldet "login" (ikke den første)
Phpfilen outputer: brugerstatus=inside (outside hvis fejl)
Avatar billede lubker Nybegynder
07. maj 2004 - 20:31 #9
Inde i minLoadVars.onLoad = function() {}
skal jeg skrive noget ala:

if(brugerstatus == "inside"){
gotoAndPlay();
} else {
gotoAndPlay();
}
Avatar billede _k Nybegynder
07. maj 2004 - 20:35 #10
Så burde du kunne gøre sådan her:

minLoadVars.onLoad = function() {
  if(this.brugerstatus == "inside"){
    gotoAndPlay();
  } else {
    gotoAndPlay();
  }
}
Avatar billede lubker Nybegynder
07. maj 2004 - 20:41 #11
Det er den ikke glad for:

minLoadVars = new LoadVars();
minLoadVars.onLoad = function() {
  if(this.brugerstatus == "inside"){
    gotoAndPlay(25); //inside
  } else {
    gotoAndPlay(30);//outside
  }
}
minLoadVars.load("login.php?username=test&paswd=test");
Avatar billede _k Nybegynder
07. maj 2004 - 22:22 #12
Hvad er det "den" ikke er glad for?
Avatar billede lubker Nybegynder
07. maj 2004 - 22:24 #13
Den siger jeg ikke er logget ind.
Avatar billede _k Nybegynder
07. maj 2004 - 22:31 #14
Fair'n'square, det går jo ikke :)

Du kan prøve at trace om du overhovedet får hentet variablen ind i Flash:

minLoadVars.onLoad = function() {
  trace("..og variablen er: " + this.brugerstatus);
}
Avatar billede lubker Nybegynder
07. maj 2004 - 22:31 #15
kan man tjekke outputtet tilflash medtace og i såfald hvordan?
Avatar billede _k Nybegynder
07. maj 2004 - 22:37 #16
Du bruger trace inde i Flash. Det dutter ikke hvis du afvikler swf'en fra en standalone player eller i html.

Du kan trace hvad som helst (som regel variable), og se dem i output-vinduet.

Udskriver den ikke noget, er der fejl i php-dokumentet. Du kan evt. smide et link, eller vise kildekoden her....
Avatar billede lubker Nybegynder
07. maj 2004 - 22:37 #17
lille problem,kan jo ikke bruge php gennem flash...
Avatar billede _k Nybegynder
07. maj 2004 - 22:50 #18
Svaret er "jo". Fungerer din pc/maq som en server har du adgang kan du kalde php-filen direkte (hvis du compiler din swf til et sted din webserver holder styr på). Ellers skal du om en dedikeret webserver, hvilket du gør ved at kalde den speficikke url:

minLoadVars.load("http://www.mitDomæne.dk/login.php?username=test&paswd=test");

...havde intryk af at du havde styr på php (og dermed også en basal forståelse for webteknologier)?
Avatar billede lubker Nybegynder
07. maj 2004 - 23:00 #19
Kandet passe den går videre til næste frame inden den når at hente variablen?
Avatar billede _k Nybegynder
07. maj 2004 - 23:05 #20
nej - støder Flash ind i LoadVars-scriptet bliver det eksekveret uanset om playheaded bliver stående på det eller ej.....
Avatar billede lubker Nybegynder
07. maj 2004 - 23:08 #21
okey. så virker det lidt mærkeligt, for hvis jeg loader fra en txt-il med indholdet userstatus=inside så virker det fint,
og vis jeg åbner php-filen 127.0.0.1/login.php?username=test&paswd=test

skriver den userstatus=inside,

Så det burde jo virke, men den siger altså at jeg ikke er logget ind.
Avatar billede _k Nybegynder
07. maj 2004 - 23:17 #22
Lyder som whitespace. Er du sikker på, at php-en kun outputter:

userstatus=inside

og absolut intet andet?

Du kan evt. putte &-tegn rundt om indholdet, så bliver det hele lidt mere skudsikkert:

&userstatus=inside&
Avatar billede lubker Nybegynder
07. maj 2004 - 23:27 #23
Sådan nu fik jeg det til at virke.
Smider du et svar?
Avatar billede _k Nybegynder
07. maj 2004 - 23:29 #24
Yep - here goes....
Avatar billede lubker Nybegynder
07. maj 2004 - 23:30 #25
Fik også lidt karma.
Mange tak for hjælpen...
Avatar billede fangel Nybegynder
09. maj 2004 - 09:05 #26
måtte jeg ikke få lidt point for mit smukke PHP? (kan godt undvære dem, men ville da være meget rart)

Morten
Avatar billede lubker Nybegynder
09. maj 2004 - 13:01 #27
Jo, undskyld.
Hvor meget vil du ha'?!?
Avatar billede fangel Nybegynder
09. maj 2004 - 15:02 #28
ved jeg ik - 15p er fint... men kan godt leve uden ;)
Avatar billede lubker Nybegynder
09. maj 2004 - 15:06 #29
Det får du og lidt karma med...
Avatar billede fangel Nybegynder
09. maj 2004 - 15:18 #30
der er fint - mange tak ;)
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