02. august 2002 - 23:25Der er
47 kommentarer og 2 løsninger
Til og fra php
Et simpelt spørgsmål. Jeg har nogle variabler, og når man klikker på en knap, skal de sendes til et php-script, som gemmer dem i en MySQL-database, hvorefter flashfilmen springer til et andet frame hvor samtlige gemte variabler vises - hentet af php igen. Hvad skal jeg skrive på knappen i php-scriptet og i det andet frame, hvor variablerne igen indlæses???? Det er da ikke så svært - vel...
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Du skla udover din knap have et tomt movieclip til at modtage data. Det kan vi kalde for "dataContainer" (som du skal skrive som instance-navn). På din knap skriver du:
on (release) { loadVariables("mit.php?var1="+var1+"&var2="+var2, dataContainer); }
Du gentager fremgangsmåden for alle de variabler, som du ønsker at sende. Dit php-script modtager dem som GET, sætter ind i tabel og trækker alle records ud og udskriver dem som:
var1=noget&var2=nogetandet&var3=en tekst&var4=mere tekst
I din flash har du på dit dataContainer-clip:
onClipEvent (data) { for (i in this) _root[i] = this[i]; _root.gotoAndPlay("someFrame"); }
Så kopierer du alle de indkomne data til hovedscenen og sender den til en anden frame, hvor data (highscore?) skal vises....
PHP-sciptet er noget sværere, men det kan du vel? Ellers så spørg i gen...
Det PHP kan jeg nok ikke klare, men jeg kan få en anden til at lave det, så det burde ikke være noget problem, hvis bare det andet virker - men det varer nok lidt tid før jeg kan afprøve det.
hvordan skal jeg gøre det... jeg kan godt tjekke om variablerne findes...
og finde en top 5 af folk med point...
point.php ----
<?php
if(isset($_GET['navn']) && isset($_GET['point'])){ //tjekker om navn og point findes
$db = mysql_connect("...","...","..."); mysql_select_db("...",$db); $dato = time(); $navn = $GET['navn']; $point = $GTE['point']; mysql_query("INSERT INTO point (navn, point, dato) VALUES ('$navn','$point','$dato')")or die(mysql_error()); $q = mysql_query("SELECT point, navn, dato FROM point ORDER BY point LIMIT 0,5")or die(mysql_error()); while($row = mysql_fetch_array($q)){ $dato = date("d/m - y \k\l\. H:i:s",$row[2]); $til_flash[] = $row[1]." fik ".$row[0].W point d. ".$dato; } ?>
det array ved navn $til_flash[] skal så sendes til flash... hvordan gøres dette???
Så får du alle nyheder til at hedde "nyhed0", "nyhed1", "nyhed2" osv osv.
Desuden får du en variabel der har optalt dem for dig : "nyhedAntal"
Disse variabler tilgår du i flashen på almindelig vis.
Variablen "yepDu" bliver sat til "yep" når alle data er loadet ind. Det betyder at du looper mellem to (eller xxx antal) frames. I sidste af disse frames skriver du så.
if(isset($_GET['navn']) && isset($_GET['point'])){ //tjekker om navn og point findes
$db = mysql_connect("...","...","..."); mysql_select_db("...",$db); $dato = time(); $navn = $GET['navn']; $point = $GTE['point']; mysql_query("INSERT INTO point (navn, point, dato) VALUES ('$navn','$point','$dato')")or die(mysql_error()); $q = mysql_query("SELECT point, navn, dato FROM point ORDER BY point LIMIT 0,5")or die(mysql_error()); while($row = mysql_fetch_array($q)){ $dato = date("d/m - y \k\l\. H:i:s",$row[2]); $info.= sprintf("navn%d=%s&point%d=%d&dato%d=%s&", $antal, $row['navn'],$antal,$row['point'],$antal,$dato); } } ?>
hvor for den variablen $antal skal er væren en $antal++; i wqhile() løkken ?
if(isset($_GET['navn']) && isset($_GET['point'])){ //tjekker om navn og point findes
$db = mysql_connect("...","...","..."); mysql_select_db("...",$db); $dato = time(); $navn = $GET['navn']; $point = $GTE['point']; mysql_query("INSERT INTO point (navn, point, dato) VALUES ('$navn','$point','$dato')")or die(mysql_error()); $q = mysql_query("SELECT point, navn, dato FROM point ORDER BY point LIMIT 0,5")or die(mysql_error()); while($row = mysql_fetch_array($q)){ $dato = date("d/m - y \k\l\. H:i:s",$row[2]); $info.= sprintf("navn%d=%s&point%d=%d&dato%d=%s&",$antal,$row['navn'],$antal,$row['point'],$antal,$dato); $antal++; } }
jeg sender en mail om at PyroMan skal acceptere jeres svar... (han er lige taget på Efterskole, men der må vel være en comp. med internet...)
Morten
lige en gang til...
FRA Flash TIL PHP: lav en knap der har denne kode:
on (release) { loadVariables("point.php?ant_point="+point+"&navn="+navn, dataContainer); }
så bliver variablerne $_GET['ant_point'] og $_GET['navn'] sendt til PHP...
i point.php skriver jeg
<?
$antal = 0;
if(isset($_GET['navn']) && isset($_GET['point'])){ //tjekker om navn og point findes
$db = mysql_connect("...","...","..."); mysql_select_db("...",$db); $dato = time(); $navn = $GET['navn']; $point = $GTE['point']; mysql_query("INSERT INTO point (navn, point, dato) VALUES ('$navn','$point','$dato')")or die(mysql_error()); $q = mysql_query("SELECT point, navn, dato FROM point ORDER BY point LIMIT 0,5")or die(mysql_error()); while($row = mysql_fetch_array($q)){ $dato = date("d/m - y \k\l\. H:i:s",$row[2]); $info.= sprintf("navn%d=%s&point%d=%d&dato%d=%s&",$antal,$row['navn'],$antal,$row['point'],$antal,$dato); $antal++; } }
print "&".$info."Antal=$antal&yepDu=yep&";
?>
HVAD skal jeg så skriv I flash før den registere de variabler... (navn1, point1, dato1,(OSV for navn2, point2 og dato2) antal og yepDu)
Om du skal bruge $_GET['ant_point'] i forbindelse med din PHP kommer an på om "register_globals" er on/off og på versionen af din PHP. I PHP 4 gør man sådan her :
Er de "on" kan du nøjes med navnet alene : $navn
Er de off vil jeg foreslå du indsætter denne lille linie :
if($HTTP_GET_VARS){ foreach($HTTP_GET_VARS as $Key=>$Value) { $$Key = $Value; } }
Nu har jeg prøvet at lave en simpel test hvor man bare selv skriver navn og point, men det virker ikke helt. Den kan godt modtage forudlavede data, men når man selv skriver navn og point i flash filmen virker det ikke. Prøv at kigge på det hele: http://www.desi-dev.dk/Flash/hjælp.zip
Ja, men jeg er på efterskole, og der er kun iMacs, og de virker af helvede til, men jeg arbejder på at få det til at virke med at sende mails. du kan skrive til mig på: filip@desi-dev.dk eller pyroman_pg@hotmail.com
=>dea Jeg prøver at få messenger til at virke, men alt spasser bare. Foresten hvad hedder desi-dev's mail servere pop3 : http://mail.cliche.dk smtp: det samme ikke - eller hvad, det er ret vigtigt for ellers kan jeg ikke sende e-mail fra desi-dev. (jeg kan heller ikke med hotmail, aner ikke hvorfor)
Det virker da fint? Hvis du ikke kan forstå, hvor "Morten" med "8388607" altid ligger øverst selvom du sender en større score, så skyldes det nok en mysql-begrænsning på din integer-størrelse (11?)... Lav den om til en almindelig int på 16 eller 32 byte...
Jeg fik det ihvertfald fint til at virke med de to filer i din zip...
Filip => mail-server : mail.desi-dev.dk (begge to...) mail-user : HELE din mail ex filip@desi-dev.dk mail-paswd : den må du selv huske... hæhæ HUSK at der skal kode til udgående mailserver også...
og jeg fik fri 13:40... ;)
barklund => jep, det er en int(11)... men flash programmeringen viser også nr. 2... der burde være udskiftning der...
Tjaa... Jeg testede (lavede en ASC istedet for DESC) og satte nogle lave scores ind (som du kan se i din db) og det virkede fint. Jeg rørte udover SQL'en intet i flash eller php... Du skal dog vide, at det ikke virker inden i flash-environment, men kun fra browser...
barklund og nikolajdu => E. brugere "Sukos" og jeg er igang med at stable en side med forskellige script op... og jeg ville lige høre om i havde nogle i godt kunne tænke jeg er få lagt der ud... med 100% ophavsret til jer... siden kommer til at hedde www.showsource.dk oh kommer hovedsagelidt til at være med PHP scripts, men andet er altid godt (dog ikke ASP... "We really dont like MS that much"...)
hvis i er intereseret så send en mail til mig på mfa@desi-dev.dk
Nikolajdu => sejt... sider er ikke lavet endnu... com'on(.dk)... det kunne være sjovt at sige "Vi har samlinger af script fra E. rigtige eksperter..." ;)
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.