07. august 2006 - 12:24Der er
9 kommentarer og 1 løsning
flash og database
hej, jeg har aldrig før arbejde med noget hvor flash gerne skulle kontakte, læse, og indsætte ting i en slags database. Så nu vil jeg gerne have nogen gode råd, til hvad der kan bruges, er godt, ikke mega svært og bare.. ja godt:P Jeg ved ingen ting om det, så mit aller første bud var faktisk at bruge en rå tekstfil. Så var problemet bare, jeg ikke ved hvordan man gør, og om man kan gøre det. Men nu ville jeg lige spørger her først om der er noget bedre og sådan.
Well, det nemmeste er nok at bruge php/asp som bindeled mellem flash og databasen. Hvor meget erfaring har du med programmering i; Flash ActionScript? PHP eller ASP?
php har jeg arbejdet i, i snart 4 år. Actionscript, lige så længe som flash og det er et stykke tid. Men det jeg faktisk mangler er et sted jeg kan læse om det, eller en der kan fortælle hvordan det hænger sammen, og noget eksempel og sådan:)
========================================================== Som du kan se foroven bruger jeg loadvars med Sendandload. lvOut samler de værdier jeg ønsker at sende til mit PHP script, mens lvIn er den variabel som samler de værdier som kommer retur. I Dette tilfælde sender jeg brugerens indtastet brugernavn "bruger, samt det indtastet kodeord "kode". Jeg bruger POST, hvis jeg kun ville hente info kunne jeg lige så vel bruge GET. I Linie 3 kan du se at jeg aktivere loginfunktionen ved min "loginBtn" knap. myIdentifier i linie 9 bruger jeg så IE ikke bare reloader PHP filen fra cachen og laver ged i login'en. (Dette behøves ikke hvis dit site kun er til Firefox). I linie 14 kan du se "lvIn.Login", dette er en variabel som er hentet retur fra PHP scriptet, den er lagret i lvIn og hedder "Login". Ok, videre til PHP scriptet:
<?php //Først starter vi vores seesion session_start(); //inkluderer vores user og pass til vores DB include("DBaccess.php"); // vi henter vores variabler fra Flash $brugernavn = $_POST['bruger']; $kodeord = $_POST['kode'];
//Skaber forbindelse til vores database $connection = mysql_connect('localhost', $db_user, $db_pass); mysql_select_db('din_database', $connection);
//Etablere et query $query = "SELECT * FROM users WHERE brugernavn='$brugernavn' AND kodeord='$kodeord'";
//Løber vores query igennem og registrere antal påvirket rows $result = mysql_query($query, $connection); $affected_rows = mysql_num_rows($result);
//Hvis der er præcis 1 row påvirket, er brugeren logget ind, ellers er han nægtet adgang //Som det kan ses registrere vi dette i variablen Login, som på denne mådes sendes til Flash if($affected_rows == 1) { //Nu læser vi data ind fra databasen while($dbstuff=mysql_fetch_array($result)){ $nummer = $dbstuff['id']; $bruger = $dbstuff['brugernavn']; $mail = $dbstuff['email']; $verf = $dbstuff['verf']; } } else { echo "&Login=0&"; } if($verf == 1){ //Her sender vi værdierne til Flash i form af nye variabler echo "&spillernummer=$nummer&"; echo "&email=$mail&"; echo "&bruger=$bruger&"; echo "&Login=1&"; } else { echo "&Login=2&"; } mysql_close(); ?>
Det ser rigtig godt ud, og jeg fik da også lavet noget der så henter information. Men jeg har problemet. Det kun når jeg kører det via macromedia flash det virker. Når jeg exportere filen og kører den kan den ikke finde information. Nogen der ved, hvad der måske kunne være galt?
Wierd! Dine stier er korrekte? Eks: lvOut.sendAndLoad("login.php?uniq"+myIdentifier, lvIn, "POST"); Her skal din php ligge i samme rod som Swf'en, medmindre du self ændrer stien!
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.