| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Mar 2004
Beiträge: 5
| Variablen per GetURL und POST an PHP übergeben
Moinsen! Eigentlich hatte ich gedacht, dass mein Problem gar keines sein könnte; ist es anscheinend aber doch! Ich hantiere seit Wochen erfolgreich mit LoadVars() und sendAndLoad herum und übermittele so ständig Daten an unterschiedliche PHP-Skripte. Aktuell würde ich aus Flash heraus gerne eine PHP-Datei in einem leeren Frame aufrufen und gleichzeitig per POST einige Variablen übergeben. Dazu denke ich, dass getURL ("Skript.php", "_blank", "POST"); ein probates Mittel sein sollte. Leider empfängt das PHP-Skript keine Variablen oder anders herum: Das assoziative Array $_POST ist leer. Nun habe ich die Actionscript-Referenz gewälzt und komme immer wieder zu dem Punkt, dass ich einen leeren Movieclip anlegen soll, darin dann Variablen definieren kann, welche ich dann per GetURL angeblich verschicken kann. Laut Handbuch also in etwa so: createEmptyMovieClip ("Variablencontainer", 42); Variablencontainer.ersteVariable = 1; Variablencontainer.zweiteVariable = 2; Variablencontainer.getURL ("Skript.php", "_blank", "POST"); Fakt ist leider, dass ich mich auf den Kopf stellen kann, $_POST ist und bleibt immer leer. Ich rufe getURL aus einem untergeordneten Movieclip auf. So bin ich auch schon auf die Idee gekommen, alles aus _root aufzurufen. Auch dort: Fehlanzeige! Das einzige Mal, dass ich getURL vernünftig zum Laufen bekommen habe war, als ich einen vollkommen leeren MC erstellt, dort dann ersteVariable = 1; zweiteVariable = 2; getURL ("Skript.php", "_blank", "POST"); eingetippt und anschließend das Ganze veröffentlicht habe. Meine Frage: Bin ich blöd? Funktioniert getURL so unzuverlässig? Falsche Exporteinstellungen? Alle SWFs korrupt? Wie gesagt, mit sendAndLoad funktioniert alles ganz prima, aber ich benötige halt die Datei in einem neuen Frame. Ach ja: Spaßeshalber habe ich es auch versucht, die Variablen per GET oder ohne Angabe der Methode zu übermitteln. Klappt alles nicht. Ich werd noch bekloppt!Woran kann's liegen? Vielen Dank für Eure Mühen ... |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Mar 2004
Beiträge: 5
|
Ja, auf die Idee hätte ich auch selbst kommen können, viel Dank schon mal dafür, aber: Es funktioniert trotzdem nicht. Auch mit Variablencontainer = new LoadVars(); Variablencontainer.ersteVariable = 1; Variablencontainer.zweiteVariable = 2; Variablencontainer.send("Skript.php","_blank"); bekomme ich schöne leere Variablen übermittelt. Aber eine andere Sache habe ich herausgefunden. Mit dem IE funktioniert die Sache weder mit getURL noch mit Loadvars.send, aber mit Opera oder Firefox umso besser. Ohne jetzt hier wieder den alten Browserkrieg vom Zaun zu brechen: Es kann doch nicht sein, dass dieses Problem nur beim IE auftaucht. Auch habe ich nochmals getestet was passiert, wenn ich die Variablen per Loadvars.sendAndLoad verschicke. Dann funktioniert alles reibungslos, der IE nimmt alles korrekt entgegen, aber leider dann nicht in einem neuen Frame. Spaßeshalber habe ich mal ein neues XP in einer virtuellen Maschine installiert. Gleiches Verhalten: Mit getURL und Loadvars.send bleiben die Variablen leer. Hat sonst noch jemand einen unschlagbaren Tipp in der Sache, wo ich den Fehler verorten könnte, wenn man mal die ultimative Lösung, dass der IE Müll ist, beiseite lässt? |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2004
Beiträge: 5
|
Hilf Dir selbst, dann hilft Dir Gott! Ich scheine da auf ein Problem gestoßen zu sein, welches weder neu noch unbekannt ist. Es handelt sich wohl um einen Bug, den Internet Explorer und Flash untereinander aushandeln. Wer auch immer daran Schuld sein mag. Wenn die Methoden getURL oder LoadVars.send() in Flash aufgerufen werden, muss bei getURL die Sendemethode explizit angegeben werden, bei LoadVars.send() wird standardmäßig POST verwendet. Egal wie man es macht, per POST übermittelte Variablen werden nicht an den IE übermittelt, wenn Flash aus einem Frameset oder iFrame aufgerufen wird. Da das recht häufig der Fall sein dürfte, erklärt das wohl auch, warum es bei dem Einen klappt und bei dem Anderen eben nicht. Es funktioniert also sehr gut, wenn man z.B. eine fla-Datei ind eine swf-Datei und ein HTML-Dokument überführt. Der Aufruf des HTML-Dokumentes führt dazu, dass alle Variablen korrekt übermittelt werden. Es funktioniert nicht mehr, sobald die swf-Datei in einem anderen Frame eingebettet ist als der übergeordnetste Frame. Die einzige probate Lösung für das Problem (wer nicht auf den IE verzichten möchte) ist, dass auf die Methode GET zurückgegriffen werden sollte. Kleiner Wehrmutstropfen an dieser Stelle: Die übermittelten Variablen sind im Klartext in der Adresszeile des Browsers zu lesen. Hier also besser keine Kennwörter oder andere sensible Variableninhalte übertragen. Wer sich weiter mit diesem leidigen Thema auseinandersetzen möchte, der kann das auf den Livepages von Adobe unter http://livedocs.adobe.com/flash/mx20...=00001418.html tun und sich dort die Kommentare der User zur Methode LoadVars.send() durchlesen. Spätestens dann sollten alle Klarheiten beseitigt sein. Und wie gesagt: Das Problem taucht bei Opera und Firefox erst gar nicht auf. |
| | |
| | #5 (permalink) | |
| Neuer User Registriert seit: Sep 2005
Beiträge: 44
| Zitat:
tja ich bin auch am verzweifeln. Gibt es mittlerweile eine richtige Lösung dafür? bzw. ab welcher Flash Version wurde dieser Bug behoben? Grüße BMo
__________________ BMo-design.de | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |