Flash-Seite in PHP einbinden und gleich Variable an Flash übergeben

Matze202

Erfahrenes Mitglied
Moin moin @all ;)

Ich suche bisher schon eine Weile nach einer Möglichkeit, wie ich eine Flash-Seite in eine PHP-Seite einbinden kann und damit gleich eine Sessionvariable mit übergeben kann.

Bisher habe ich folgenden Code über Google zusammen gesucht:

HTML:
<?php
session_start();
?>
<HTML>
<HEAD>
<TITLE>Flash-Chat</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">
<div align="center">
  <OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" WIDTH="100%" HEIGHT="100%">
<?php

if($_SESSION['code'] == NULL){
	$_SESSION['code'] = md5(2321512+time());
}

?>
    <PARAM NAME="movie" VALUE="./login.swf?sid=<?php echo $_SESSION['code']; ?>">
    <PARAM NAME="quality" VALUE="high">
	<param name="play" value="true">
    <EMBED src="./login.swf<?php echo $_SESSION['code']; ?>" quality=high WIDTH=100% HEIGHT=100% TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED> 
  </OBJECT>
</div>
</BODY>
</HTML>

Aber da kommt immer eine leere Seite. :(

Wäre nett, wenn mich jemand über den Fehler aufklären würde.

Gruß Matze202.
 
Zuletzt bearbeitet:
Hi @luke_the_duke und thx,

aber das ist noch nicht mein problem, sondern dass die Flash-datei noch nicht geladen wird, sondern die Seite leer bleibt, denn normal müßte die Seite durch das Flash dunkelblau sein.

Gruß Matze202.
 
Hallo,


ach ja, ich hab da eben auch was übersehen, entschuldige. Hier liegt der Fehler:

Code:
<EMBED src="./login.swf?sid=<?php echo $_SESSION['code']; ?>"


gruss
 
jepp thx, das habe ich auch gerade entdeckt, da ich von jemand anderen auf den Dateipfad hingewiesen wurde.

jetzt werde ich mich mal an das Flash machen um den Code auszulesen.

Gruß Matze202.
 
Hi ;)

ich habe mich jetzt mal wieder da ran gemacht, aber irgendwas funktioniert mit der Ausgabe im Flash nicht.

Versucht habe ich es nun erstmal auf der HTML-Variante, wie Sie unter:

http://www.php-resource.de/tutorials/read/45/1/

erklärt wird.

PHP:
<?php
session_start();

if($_SESSION['code'] == NULL){
	$_SESSION['code'] = md5(2321512+time());
}

if($_SESSION['login'] != 'OK'){

?>
<HTML>
<HEAD>
<TITLE>Flash-Chat</TITLE>
</HEAD>
<BODY bgcolor="#000033">
<div align="center">
		<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" WIDTH="100%" HEIGHT="100%">
			<PARAM NAME="movie" VALUE="login.swf?code=<?php echo $_SESSION['code']; ?>">
			<PARAM NAME="quality" VALUE="high">
			<param name="play" value="true">
			<EMBED src="login.swf?code=<?php echo $_SESSION['code']; ?>" quality=high WIDTH="100%" HEIGHT="100%" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED> 
		</OBJECT>
</div>
</BODY>
</HTML>
<?php

}

?>

Den übergebenen Wert von code versuchte ich nun in dem Eingabefeld fehler mit folgender Scriptzeile ausgeben.

Code:
_root.fehler = _root.code;

So wie es auch in der Anleitung erklärt wird.

Aber irgendwie steht da immer nur der Text drin, den ich im Flash eingetragen habe, damit ich dieses Feld erstellen konnte.

Gruß Matze202.
 
Hallo,

an deinem Object-Tag ist im Prinzip nichts auszusetzen, könntest du sonst mal dein ActionScript posten, vielleicht liegt da der Fehler.


gruss
 
Hi,

handelt es sich bei "fehler" um eine Textfeldinstanz oder eine Textfeldvariable? Im ersteren Fall muss die Zeile so lauten:
Code:
_root.fehler.text = _root.code;

Gruß
.
 
thx @Tobias Menzel ;)

Gibt es eigentlich eine einfacherer Methode vom Flash, zu checken, ob der Flashfilm sich auf dem selben Server sich befindet, wie das Script, von dem der Flashfilm aufgerufen wurde?

Momentan sende ich die Serveradresse mit md5() verschlüsselt an den Flashfilm, welche beim Starten erneut eine Datei auf dem Server des Flashfilms aufruft und die vom User gewählte Serveradresse ebenfalls mit md5() verschlüsselt an den Flashfilm sendet. Somit will ich vermeiden, dass die Bots eigene Seiten verwenden können um den Login-Flashfilm zu starten.

Der Zweck für diese Überprüfung soll sein, dass Bots, welche versuchen Zugangsdaten zu erlangen, keinerlei Möglichkeit haben, dies Überhaupt zu versuchen, da ihnen sofort eine Fehlerseite statt der Loginseite angezeigt wird?

Den Login werde ich zwar selbst noch seitens PHP absichern, aber ich wollte halt noch eine 2. Überprüfung mit einbauen.

Gruß Matze202.

PS.: Ich hoffe es ist noch verständlich, was ich hier geschrieben habe, wenn nicht dann muß ich mit Beispielen weiter ausholen. ;)
 
Hi,

die einfachste Lösung wäre in Deinem Fall, den Flashfilm eine LoadVars.sendAndLoad-Anfrage an den Server zu stellen. Zugriffe von externen Domains werden in den aktuellen Flashplayern blockiert, so dass Du nur eine Antwort bekommst, wenn der Film auf der selben Domain wie Dein PHP-Script liegt.

Gruß
.
 

Neue Beiträge

Zurück