PHP Variablen in Flash laden

tarkand

Grünschnabel
ich hab folgendes problem: ich will meine php variablen in flash laden.
es funktioniert aber einfach nciht. hab mich hier schon durch mehrere threads gelesen.
steht zwar immer das gleiche loadVariablesNum blabla blabla &variable=wert& blabla
blabla.
es hilft nix. hab ein ein megagroßes buch(Flash Mx2004 und actionscript) und noch ein
anderes (dynamische webseiten mit flash und php) da steht auch wieder das drin was hier
im forum steht. ich bin am verzweifeln. wenn ich mir ein billigen counter oder so ziehe,
dann funktioniert der. wenn ich es aber selber versuche funktioniert es nicht. :( :(
ich hab mal irgendwo gelesen, dass man da beim abholen der variablen irgendwas mit
random() machen muss. bin zwar nicht ganz dahintergestiegen aber da stand was von
wegen dateien im inet explorer. die hab ich inzwischen auch schon so oft gelöscht,
dass....... ach weiß nich(aber zu oft). es will einfach nicht gehen.
gibt es da evtl. kniffe die normalerweise für jeden klar sein "sollten".
wer mir hilft dem wäre ich sehr dankbar(mehr als sehr-sehr sehr)
schon mal im voraus vielen dank
greetz :)
 
Tach Post,

da wir uns jetzt auch nichts aus den Fingern saugen können.. solltest du uns schon mehr Input geben. Wie wärs denn mit ein paar Zeilen AS oder der Fla?

_keen!
 
also ich denke sowiet dürfte es ja noch stimmen :
<?
echo "&test=esgeht&"
?>


und hier geht warscheinlich irgendwas nicht:

on (release){
_root.movieClip.loadVariables("counter.php");
}

//den spaß hab ich auf nen button geknallt!

aber das ist nicht die einzige möglichkeit die ich ausprobiert habe
 
Hi,

Code:
on (release){
_root.loadVariables("counter.php");
}

Ohne movieClip gehts vielleicht - falls nicht - dann bitte FLA posten.


mfg Beta
 
Hallo,

1. Bitte halte dich an die hier geltenden Regeln und dazu gehören auch korrekt gesetzte Gross/Kleinbuchstaben!

2. Flash kann mit dem LoadVars-Objekt (und nicht mit blabla!) Daten von und zu einem PHP-Script laden. Das funktioniert immer folgendermassen:
Du kreierst ein neues LoadVars-Objekt und speicherst alle Variabeln, die an das PHP-Script gesendet werden sollen, in diesem Objekt:

PHP:
_root.deinObjekt = new LoadVars();
_root.deinObjekt.var1 = "Hallo Welt!";
_root.deinObjekt.var2 = "10.5.2005";

Nun sendest du das Objekt und dessen Inhalt wie folgt an das PHP-Script:

PHP:
_root.deinObjekt.sendAndLoad("http://www.deineURL.de/deinScript.php", _root.deinObjekt, "POST");

Der erste Parameter der Funktion "sendAndLoad" beschreibt die URL des PHP-Scripts, entweder so wie oben absolut oder auch relativ. Der zweite Parameter beschreibt das Objekt, in das eventuelle Variabeln, die vom PHP-Script zurückgegeben werden, geladen werden. Der letzte Parameter steht für das Sende-Verfahren. Im Zusammenhang mit Flash solltest du immer die Post-Methode wählen.

Im PHP-Script kannst du durch den assioziativen Array $_POST auf die von Flash gesendeten Variabeln zugreifen, wobei die Variabel-Namen des LoadVars-Objektes die Indizes sind:

PHP:
$message = $_POST["var1"];
$datum = $_POST["var2"];
echo $datum;
//gibt 10.5.2005 zurück

Flash kann jedoch die normale Echo-Ausgabe von PHP nicht interpretieren, darum musst du die Variabeln wie folgt ausgeben:
PHP:
echo "&datum=$datum";
echo "&message=$message";

Wie oben geschildert, musst du ja beim sendAndLoad-Aufruf auch ein Ziel-Objekt angeben. Dieses Zielobjekt verfügt bei erfolgreich abgeschlossenem Datenaustausch über die Eigenschaften, die du im PHP-Script als &Variabeln ausgegeben hast. Das Objekt _root.deinObjekt hat also jetzt die Eigenschaften "datum" und "message". Die kannst du auch ganz konventionell abrufen.
PHP:
trace (_root.deinObjekt.datum);
//gibt 10.5.2005 zurück

Damit man nicht auch noch selbst den Lade-Prozess überprüfen muss, kann man diese Ausgabe an einen onLoad-Event koppeln. Beim Gebrauch von "this" in der Event-Funktion ist dann _root.deinObjekt gemeint.

Der komplette Code in Flash:
PHP:
_root.deinObjekt = new LoadVars();
_root.deinObjekt.var1 = "Hallo Welt!";
_root.deinObjekt.var2 = "10.5.2005";
_root.deinObjekt.onLoad = function () {
   trace (this.datum);
   trace (this.message);
}
_root.deinObjekt.sendAndLoad("http://www.deineURL.de/deinScript.php", _root.deinObjekt, "POST");

Gruss
 
Zuletzt bearbeitet:
ohne movieclip gings. danke, ich glaub es kaum. und ich idiot hab es 100 000 mal probiert :D. nochmal danke
 
sorry dass ich nochmal nerve(passt dennoch wunderbar unter die überschrift)
eines miener schlauen bücher besagt, dass man von php max 50 variablenauf einmal nach flash übergeben kann(bzw. es wäre besser wenn man es so macht) weil sonst der flashfilm abstürzen kann
 
Mist, zu spät ^^...

So,

hab mal schnell was gebastelt, bin auf keinen grünen Zweig gekommen:
PHP:
// AS
myVar = new LoadVars();
myVar.onLoad = function(suc) {
	if(suc) {
		trace('testVar: '+this.testVar);
	}else{
		trace('schlug leider fehl');
	}
}
myVar.load('script.php');

stop();
PHP:
<?php
    $o = 'ich bin der Inhalt!';
    echo '&testVar=$o&&';
?>
Bei mir haut er immer nur $o raus. Muss wieder zur Uni, viel Spaß beim probieren ;) .

_keen!
 
Hi,


Code:
<?php
    $o = 'ich bin der Inhalt!';
    echo '&testVar='.$o.'&&';
?>

So sollte es funktionieren. Du hast die Variabel als String übergeben.

mfg Beta
 
betamorph hat gesagt.:
Code:
<?php
    $o = 'ich bin der Inhalt!';
    echo '&testVar='.$o.'&&';
?>
So sollte es funktionieren. Du hast die Variabel als String übergeben.
Habe ich auch erst versucht gehabt. Kam aber aufs selbe raus, und so stands im Cookbook.

_keen!
 
Zurück