Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-11-2005, 23:20   #1 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Dyn.Textfeld mit PHP $_SESSION füllen

Ok,

Also auch auf die Gefahr hin, hier öffentlich gesteinigt zu werden, denn offensichtlich gehen hier die Meinungen bezügl. des nötigen Wissenstands für diese Themen stark auseinander. Trotz 3 Jähriger Bastelerfahrung und Manuals in 4 verschienden Sprachen, hab ich immer noch Anfängerfragen die nicht wirklich für main Verständnis in anderen ähnlichen Threads beantwortet wurden. Und wenn man sucht, findet man 2000 threads wovon keines auf den Kern der eigenen Frage zurückführt. Also schonh mal SOrry im Vorraus für die Frage:

Wie kann ich im Startframe eines SWF lehre Variablen (oder dynamische Textfelder) mit Daten aus einem bereits hochgeladenen PHP $_SESSION Array bestücken?

.... Bitte nicht hauen. In "How Do I" und Co kannste lange danach suchen.

Beispiel: $_SESSION['menue'] existiert und ist in der Usersession bereits hochgeladen und gecached.
Der SWF Film "navi.swf" soll nun die dynamischen Textfelder der Navi Buttons mit den Menüpunkten aus dem $_SESSION['menue'] Array füllen. So ein Fall kann zB. in einem vol skalierbaren Template-CMS System eintreten, in welchem auch die Navigation ganz von der Datenbank und der Anzahl der Unterseiten abhängig verändert wird.

Ich kann leider nirgends ein Hinweis finden, denn die in diesem Forum häufiger auftretenden Fragen in Richtung loadVars() beziehen sich nicht auf bereits gecachte Sessiondaten sondern auf Daten in Txt oder PHP Files die über einen echo Befehl übergeben werden, den ich garnicht gebrauchen kann!


Bin für jeden link oder Tipp dankbar.

Gruß C8n8b1s
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Alt 05-11-2005, 23:24   #2 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Im Prinzip kannst doch alles an ne SWF per FlashVars oder als ?-Parameter übergeben und in Flash dann als Variable auf der Haupt-Timeline auslesen und verwenden... egal ob $_SESSION, $_POST, $_COOKIE etc.
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 05-11-2005, 23:58   #3 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
aaaaah! .... also war ich völlig aufm holzweg! Das hab ich geahnt.

Danke für deinen Schnellen Denkanstoß!!!! Das war echt nötig. Ich war völlig verbissen in die Idee, es müsse vom AS aus angefordert werden. Aber klar: Wenn das Template mit dem embed objekt geladen wird, existiert der content in $_SESSION['menue'] ja bereits und kann per platzhalter innerhalb der swf url im teplate geparsed, replaced und mit übergeben werden, richtig???

Danke, 1000 Dank - jetzt fällts mir wie Schuppen von den Augen.
Wie das geht und was ich beachten muss, werd ich jetzt erstmal selbst erforschen. Danke nochmal....

PS: Ich denke mal ,ich muss die Werte des $_SESSION Arrays aber dafür vorbereiten, also encoden als UTF8 oder so ...

Gruß, C8n8b1s
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Alt 06-11-2005, 00:13   #4 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Ich weiß ja nicht, was du alles an die SWF übergeben willst...
Wenn das ganze Arrays sind, vielleicht mal nach 'Serializer' suchen.

Das Thema Text-Codierung und Sonderzeichen is natürlich wieder ein eigenes - da wäre es nicht dumm, das ganze Träger-Dokument als UTF-8 abzuspeichern, inkl. Header etc.
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)
sonar ist offline   Mit Zitat antworten
Alt 06-11-2005, 08:36   #5 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Hey Sonar,
.... Nochmals danke. Du hast recht , es geht um ein Array, zumindest liegt es so im cms_load.inc.php vor, aber ich dachte, falls das zu komplex wird für jemanden der in PHP etwas stärker ist als in AS, bereite ich halt alles vorher in PHP in Häppchen vor um's zu übergeben. Aber danke nochmal für den "Serializer" Tipp. Ich versuche mal mich da rein zu fuchsen.

Um nochmal für Nach-Leser und auch für meinen Kopf noch einmal aufzuräumen, ich habe eigentl. 2 grundsätzliche Fragen:

---- Beginn Frage 1 ------

Ich muss zugeben, dass es mir aber trotzdem immernoch keine Ruhe lässt (scheint am Lernhunger zu liegen) warum das Anfordern bereits vorliegender Variablen aus dem SWF heraus per AS nicht so einfach funktionieren kann,also nicht per URL Übergabe. Mir scheint loadVArs() da ehrlich geasgt nicht wirklich gut für geeignet zu sein, fühlt sich im Zusammenahng mit PHP irgendwie veraltet an, obwohl es ja schon ein Nachfolger von loadVariables() ist. Ist das wieder so'n Thema, wo die Superflasher drüber diskutieren und in Version Flash 9 drauf warten und hoffen, oder eher so etwas, was einem vor der Nase liegt, nur schnallt man's einfach nicht... Naja - wenn ich schon so frage, wahrscheinlich zweiteres.


---- Beginn Frage 2 ------

Also ich werde auf jeden Fall jetzt dein Vorschlag (per URL?var= übergeben) wie folgt in mein bestehendes Konstrukt integrieren:
(Sorry für das viele PHP hier, aber das gehört zur Problematik)

schemenhaft:
- "index.php" implementiert "cms_load.inc.php" & "tpl_parser.php" per require_once(), wobei cms_load in einer if isset Abfrage bedingt wird.
- "tpl_parser.php" wiederum holt sich per join(file("tpl_index.inc.php"); das template in die parser klasse und wird den content anstelle der platzhalter setzen, was bereits wunderbar klappt, auch mit allen skalierbaren Extras. Und da kommst du ins Spiel,Sonar: Im Template liegt ein Platzhalter mitten in der URL für den embed object swf. Vorher wird in "cms_load.inc.php" eigenst dafür das Session Array mit der aus der DB geholten Navigation nochmal so aufbereitet, das eine weitere "Replacer-Variable" für den tpl_parser.php vorliegt, dessen Wert als String den Teil für hinter .swf? bereit hält und im Template mit allen anderen Platzhaltern regulär ausgetauscht wird.

Die Frage bleibt nur immer noch: Die per URL an swf übergebenen Variablen, liegen die jetzt im SWF automatisch so vor, dass ein dynamisches Textfeld, welches den identischen Var Namen trägt, den String aus der übergebenen identischen Variable auch enthält und direkt anzeigt, oder muss ich jetzt trotzdem per AS anfragen und einfügen ? Aber doch nicht mit loadVars(), oder? Das wäre ja qutsch, denn geladen sind sie aj jetzt schon. Wo liegen denn die per URL übergebenen Variablen jetzt genau,(technisch gesehen)? Liegen die jetzt im _global container oder im Textfield container von AS, oder sind diese Variablen jetzt (was ich halt vermute) bereits initialisierte eigene Container mit Inhalt, die nun real im AS des SWF existieren und somit auch in einem dynamischen Textfeld, welches sich als diese Variable ausgibt angezeigt wird?

ach so und ...
Zitat:
Zitat von sonar
Im Prinzip kannst doch alles an ne SWF per FlashVars oder als ?-Parameter übergeben und in Flash dann als Variable auf der Haupt-Timeline auslesen und verwenden... egal ob $_SESSION, $_POST, $_COOKIE etc.
Hab dazu noch ne blöde Frage um sicher zu gehen: meinst du mit Flashvars URL&variable= .... anstelle von PHP Style URL?variable= .... ?
Und was meinst du mit "egal ob $_SESSION etc..."- muss ich die nicht erst zu lokalen PHP Variablen zuordnen, denn URL?$_SESSION[variable]= wird ja wohl eher nicht gehen, oder?


Hach herje... Sorry, ich glaube ich habe in den letzten Nächten zuviel AS "How Do I" gelesen... Irgendwie fängt man immer wieder von vorne an, aber das ist auch gut so, dann versteht man es irgendwann richtig und nicht nur halb auswendig...

Danke,
Lieben Gruß, C8n8b1s
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.

Geändert von c8n8b1s (06-11-2005 um 16:03 Uhr)
c8n8b1s ist offline   Mit Zitat antworten
Alt 20-12-2005, 03:56   #6 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Zitat:
Zitat von sonar
Im Prinzip kannst doch alles an ne SWF per FlashVars oder als ?-Parameter übergeben und in Flash dann als Variable auf der Haupt-Timeline auslesen und verwenden... egal ob $_SESSION, $_POST, $_COOKIE etc.

Hey, Danke nochmal für die Hilfe. Ist zwar schon eine Weile her, aber vielleicht hat ja doch noch jemand einen Tipp für mich:

das Übergeben mit dem ?-Parameter in der URL ist zwar ne Möglichkeit, wie man Daten über PHP ans HTML Template und dann im <embed> Objekt an Flash übergeben kann, nur spielt da der IE6 nicht mit. Die Daten kommen verkrüppelt an, da ich auch das erhöhte Risiko eingehe, dass die Daten komplett richtig interpretiert werden. GIbt es nicht die einfache Möglichkeit Text im Hintergrund in einen Container zu laden? Dann müsste man nur schauen wie man mittles PHP dieses Textfile rechtzeitig geupdated kriegt, oder?

Hat da jemand noch ein konstruktiven Vorschlag für mich?

Lieben Dank und Gruß
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Alt 20-12-2005, 07:47   #7 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hi!
Also wenn du mit PHP arbeitest brauchst du doch gar nicht über die URL zu gehen? Dann kannst du ja im <embed>-Objekt die Variablen übergeben? Ausserdem musst du die Variablen für IE dem Object als <param>-Tag auch übergeben! <embed> ist eigentlich für FF und NN gedacht!

PHP-Code:
<object>
...
<param name="Flashvars" value="<?php echo $_SESSION['name']; ?>">
...
<embed Flashvars="<?php echo $_SESSION['name']; ?>">
Ich denke, Sonar meinte mit dem Anhängen der Variabeln per "?var1=test&var2..." direkt an die SWF-Datei, beim Aufruf! So, dass die Variablen direkt im Object-/bzw. Embed-Tag angehängt werden! Ist im Prinzip das selbe wie die Übergabe per Flashvars! Würde dann so aussehen (weitere Variablen einfach per &var2... etc anhängen - Variablenbezeichnung frei wählbar, sind dann auf der Hauptzeitleiste mit dem jeweiligen Namen ansprechbar. In unserem Beispiel also _root.var1, _root.var2, etc.):
PHP-Code:
<object>
...
<param name="movie" value="test.swf?var1=<?php echo $_SESSION['name']; ?>">
...
<embed src="test.swf?var1=<?php echo $_SESSION['name']; ?>">
So kannst du das ganze einbinden, ohne über die URL gehen zu müssen. Wird es dann doch einmal nötig sein, da z.B. ein Formular per GET-Methode aufgerufen wird, kannst du noch immer mit urldecode() einen kodierten String wieder in einen normalen String zurückverwandeln, bevor du ihn per echo oder print ausgibst!
__________________
There is no way to happiness, happiness is the way! - Buddha

Geändert von bamboocha (20-12-2005 um 07:48 Uhr)
bamboocha ist offline   Mit Zitat antworten
Alt 20-12-2005, 18:09   #8 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Hey Bamboocha,

Ein dickes Danke erstmal für deine Erläuterung, hat mir in anderer Hinsicht auch noch mal die AUgen geöffnet (im Übrigen finde ich dein Nickname cool ).

Aber im Prinzip hab ich das vorher genau so wie du eingangs sagtest gemacht: ich hatte an den link zu der swf datei per ? meine variablen ranngehangen. Das Problem ist nur, dass die zu übergebenen Daten "skalierbar" sein sollen, da das HTML File in dem sich die SWF Datei eingebettet befindet Teil eines Templates ist. Das Heisst im HTML Template befindet sich hinter "menue.swf" dann sowas wie "?btn1&btn2&btn3 usw...." Und obwohl ich auf die richtige Formatierung geachtet habe beim parsen der Daten, so das die Daten auch im swf dyn. textfeld richtig verstanden/angezeigt werden, werden die dyn. textfelder im IE6 lehr angezeigt und allen anderen Browsern korrekt angezeigt. Das lies für mich nur den Schluss zu, das also wenn man sich den Datenfluss mal genauer anguckt folgendes passiert sein könnte:

vereinfacht dargestellt:

Aufruf index.php (enthält parser und request zu daten und template)
Aufruf Daten
Aufruf Template HTML
index.php spuckt geparste HTML Seite aus mit den entsprechenden Variablen (aus Datenfile) nun im swf-link

das könnte dann so im Sourcecode eines Browsers aussehen:

Code:
<embed src="menue.swf?btn1=Was+ist+das&btn2=Info+Center&btn3=Mitglieder+Bereich&btn4=FAQ+Hilfecenter&btn5=Impressum&btn6=Links&urlc1=index_main&urlc2=index_main&target1=main&target2=main"
Diese Daten werden dann im Flashmenue sowohl im Anzeigenbereich als auch im AS Code für die entsprechenden dynamischen Links gebraucht.

Und da sehe ich halt jetzt die Schwachstelle, weil sollte ein Browser anstatt Was+ist+das eventuell Was%&89ist$%&/(das oder so ähnlich interpretieren, könnte es sein, das die Links und die Anzeige nicht funktionieren und damit die gesamte Seite die sich darauf aufbaut nicht angezeigt wird, da ja erst das geparste HTML File geladen wird und dann der Request zum SWF File inklusive der Daten gestartet wird. Oder? Also das war so meine Idee, was da schiefgegangen sein könnte? (Hatte so was ähnliches schonmal irgendwo in einer Diskussion gesehen)

Sonst kann ich mir nicht erklären, was der IE6 mit der Anzeige meiner dyn. Textfelder zu tun haben könnte. Oder ist es etwa ein banales Darstellungsproblem mit verschiedenen Flash Plug In Versonen? Aber dyn. Textfelder haben doch schon seid 5 oder 6 kein Problem mehr oder?

Hacherjeh, bin immernoch unsicher wo ich suchen soll.

Lieben Dank und Gruß
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Alt 20-12-2005, 20:02   #9 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Lies mein Posting noch einmal genau!

Es gibt drei Arten, die Variablen weiter zu geben!

1. per Anhang an den .swf-Aufruf (bsp: test.swf?btn1=toll&btn2=auchgut)
2. im <object>-Tag per <param name="Flashvars" value="btn1=toll&btn2=auchgut"> (Aufruf für IE)
3. im <embed>-Tag als Parameter (bsp: <embed Flashvars="btn1=toll&btn2=auchgut">, Aufruf für FF, NN, etc.)

Eigentlich sollte man 2. und 3. gleichzeitig verwenden, da so alle Browser abgedeckt werden. Danach gibt es noch für praktisch jede Programmiersprache die decode-Funktion! Wenn die Dateien bereits in der HTML encodiert ist (was ich annehme) kannst du das ändern, indem du die Daten per PHP zuerst dekodierst, bevor du sie einbindest, ansonsten hat auch Flash eine Decode-Funktion, mit der du die Variablen nach dem Laden dekodieren kannst!

PHP:
PHP-Code:
echo urldecode($variable); 
FLASH:
PHP-Code:
var normal unescape(_root.btn1
So, hoffe, jetzt hast du es verstanden!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 20-12-2005, 22:46   #10 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
Hey Bamboocha, lass dir bei mir keine grauen Haare wachsen.
Kommunikation ist eine schwierige Sache, vor allem wenn man techn. Dinge manchmal anders ausdrückt.

Hab dich vorher auch schon verstanden.

Meine Frage änderte sich jedoch in sofern als, dass all diese Varianten den Browser oder besser das HTML Dokument nicht umgehen und ich mich halt Frage, ob das sein muss. Und diese Decode Funktion habe ich ja oben schon erwähnt, als ich meinte, dass ich die Daten erst ins richtige Format bringe bevor ich sie übergebe. Egal ...

Da fällt mir ein:
Früher hab' ich mal Text mit einer simplen Text load Function geladen. Ich weiß nur nicht mehr wie das war. Denn dann könnte man PHP veranlassen auf dem Server die Daten in entsprechen Texthäppchen zu packen und der swf holt sich die Daten direkt, ohne den Umweg über das HTML Dokument. Ich habe irgendwie das Gefühl dass da das Problem liegt.

Hey , danke für deine Mühe. Nicht verzagen. Ich denke nur laut. Sag mir ruhig wenn das Schwachsinn ist was ich jetzt schon wieder aushecke

Liebe Grüße
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Alt 20-12-2005, 23:09   #11 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Ich krieg doch keine grauen Haare von sowas!
Aber aus deinen Ausführungen hätte man meinen können, dass du es nicht verstanden hast... gibt genügend solche hier im Forum (*nursolautdenk* )

Jo, es gäbe dann natürlich die Möglichkeit, die Daten per loadVars von ner PHP-Datei zu laden!
PHP-Code:
loadtest = new loadVars();
loadtest.sendAndLoad("test.php"loadtest"POST"); 
Und in der PHP-Datei gibst du einfach die Variablen aus:
PHP-Code:
<?php echo "btn1=".$var1."&btn2=".$var2?>
Das ganze könntest du dann noch von der Variable abhängig machen, die du per loadtest an PHP sendest! Auf jeden Fall holt er sich so die Daten ohne ein neues Fenster zu öffnen!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 21-12-2005, 09:13   #12 (permalink)
Zurückgekehrt
 
Registriert seit: Nov 2005
Ort: Berlin
Beiträge: 84
ok.

Dank dir nochmal.

cu lätaaa
__________________
Grüße aus Berlin.
PS: Wenn ihr Problematiken zu Actionscript mit PHP habt, bitte involviert mich. Da interessiert mich alles.
c8n8b1s ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:53 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele