SWF einbinden

pat_morita

Mitglied
Hallihallo!

Ich bin häufig in diesem Forum unterwegs, man lernt hier echt viel. Vor einem Jahr startete ich hier mit Flash lernen und jetzt hab ich meine eigene Flashsite mit Gallery, quasi mein Portfolio. In einem neuen Projekt hab ich eine bereits vorhandene Bildgallerie auseinandergenommen und umgebaut. Läuft! Ich würd nur gern SWF einbinden.

Ein Haken steht mir aber noch im weg. Ein Freund half mir bei PHP (von dem ich (noch) keine Ahnhung habe). Und der is nu für 1 Jahr nach Australien. -.-
Dumm, weil ich keinen habe, der mir jetzt helfen kann, daher hoffe ich, daß ich auch hier im PHP forum so hilfsbereite Leute finde. Ich hab schon angefangen mit PHP aber dafür reichts noch net... und ich würd das Projekt einfach nur gern abschließen.

Dieses SKript bekommt einen Dateinamen geliefert, in der Regel eine JPG datei, ein Bild also und erstellt ein neues POPUP davon. Wie sage bringe ich ihm bei, auch ein SWF zu öffnen? Das swfobject_source.js habe ich schon, mit dem man die Größe abfragen kann (aber wie einbinden)

Ihr seht... ich bin totaler neuling auf dem Gebiet ... aber ich bin dran.

lg Pat

PHP:
<?
error_reporting(E_ALL ^ E_NOTICE);
if (isset($_GET['path'])) $path=$_GET['path'];
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title><?=$path;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript" src="javascript/window.js"></script>
<script type="text/javascript">
<!--
function toggleBox(szDivID, iState) // 1 visible, 0 hidden
{
    if(document.layers)	   //NN4+
    {
       document.layers[szDivID].visibility = iState ? "show" : "hide";
    }
    else if(document.getElementById)	  //gecko(NN6) + IE 5+
    {
        var obj = document.getElementById(szDivID);
        obj.style.visibility = iState ? "visible" : "hidden";
    }
    else if(document.all)	// IE 4
    {
        document.all[szDivID].style.visibility = iState ? "visible" : "hidden";
    }
}
// -->
</script>
<style type="text/css">
<!--
body {
	background-color: #FFFFFF;
	margin: 0px;
	padding: 10px;
}
.od {
	position: absolute;
	left: 0px;
	top: 0px;
	width:100%;
	text-align:right;
	-moz-opacity: .5;
	filter: alpha(opacity=50);
	visibility:hidden;
}
.id {
	float:right;
	width: 50px;;
	background-color:#FFFFFF;
	margin: 20px;
	padding: 10px;
	font-family:Verdana, Arial, Helvetica, sans-serif;
	font-size: 11px;
	font-weight: bold;
	letter-spacing: -1px;
	border:double 3px #FFFFFF;
}
a:link {
	color: #000000;
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #000000;
}
a:hover {
	text-decoration: none;
	color: #000000;
}
a:active {
	text-decoration: none;
	color: #000000;
}
-->
</style>
</head>

<body onload="resizetoimage();">

<a href="javascript:window.close()" onMouseOver="toggleBox('closelayer',1);" onMouseOut="toggleBox('closelayer',0);"><img src="<?=$path;?>" alt="<?=$path;?>" border="0">
<div id="closelayer" class="od"><div class="id">close&nbsp;[x]</div></div></a>

</body>
</html>
 
Hi,

ich seh da kein Ajax. Ist schon PHP, bzw. HTML und ein bischen PHP zur Steuerung.
Du müsstest per PHP herausfinden, ob in der $_GET-Variable ein Flash-Film oder ein Bild übergeben wurde. Das könntest Du z.B. über die Endung machen:

PHP:
<?php
$suffix = substr($path, strrpos($path, '.') + 1);
if(strtolower($suffix) == 'swf') {
?>
HTML-Code zum Einbinden der Flash-Datei
<?php
} else {
?>
HTML-Code zum Einbinden des Bildes
<?php
}
?>

Wie Du Flash einbindest, findest Du z.B. hier. Dein Flash-Programm sollte Dir aber auch eine Beispiel-Datei erzeugen, aus der Du den Code übernehmen kannst.

Du solltest Dir unbedingt noch überlegen, welche Werte für $_GET['path'] erlaubt sind und die Gültigkeit überprüfen.

LG
 
vielen dank schonmal!

also wenn ich das richtig verstehe, fragst du in der IF-schleife ab, ob im pfad ein SWF vorkommt, um dann zu entscheiden, was damit gemacht wird.
Da die Pfadangabe aber von einer gallery kommt, die verschiedene SWF objekte unterschiedlicher größe lädt, wie frage ich die größe des SWF objektes ab, damit sich das Popup fenster auch dem SWF anpaßt?
Ich meine, es hat was mit der swfobject_source.js zu tun. Aber wie gesagt, ich bin Neuling :/

und wie meinst du den hier:

Du solltest Dir unbedingt noch überlegen, welche Werte für $_GET['path'] erlaubt sind und die Gültigkeit überprüfen.

lg pat
 
Zuletzt bearbeitet:
Hi,

in der IF-Abfrage wird geprüft, ob der Pfad mit "swf" endet.

wie frage ich die größe des SWF objektes ab, damit sich das Popup fenster auch dem SWF anpaßt?
Ich meine, es hat was mit der swfobject_source.js zu tun.

Mit PHP wohl gar nicht. Deine swfobject_source.js kenne ich nicht.

und wie meinst du den hier:

Zitat:
Du solltest Dir unbedingt noch überlegen, welche Werte für $_GET['path'] erlaubt sind und die Gültigkeit überprüfen.

So, wie's da steht. In dieser Gallery sind Links mit einem GET-Parameter auf Dein PHP-Script eingebaut, ungefähr so:

anzeigen.php?path=bild1.jpg

Wer (wenn nicht Du ;) ) hindert mich jetzt daran, diese URL in der Adressleiste zu manipulieren und ein wenig Cross Site Scripting, Code-Injection oder sonstwas zu betreiben. Solche Parameter ungeprüft zu übernehmen, stellt eine Sicherheitslücke dar (und zwar keine kleine).

LG
 
erstmal danke für deine ausführlichen erklärungen! das trägt viel zum verständnis bei, Das mit der Sicherheitslücke versteh ich. Ich hab hier mal noch das SWFobject script. Ich blicks net, aber vllt verstehst dus? Meines Wissens liest es ein SWF und checkt dessen Maße.
 
Zuletzt bearbeitet:
ok, hat zwar einige stunden gedauert, aber ich hab das SWF object verstanden

es muß wohl so funktionieren:

das PHP script (im ersten post) bekommt einen Pfad übergeben. Das script sollte checken, ob es sich bei dem Object um ein SWF handelt :

PHP:
<?php 
$suffix = substr($path, strrpos($path, '.') + 1); 
if(strtolower($suffix) == 'swf') { 
?> 
HTML-Code zum Einbinden der Flash-Datei 
<?php 
} else { 
?> 
HTML-Code zum Einbinden des Bildes 
<?php 
} 
?>

und danach das SWF mittels dem SWF object laden.

PHP:
<div id="flashcontent">
  This text is replaced by the Flash movie.
</div>

<script type="text/javascript">
   var so = new SWFObject (swf, id, width, height, version, background-color);
   so.addParam("quality", "high");
   so.addParam("wmode", "transparent");
   so.addParam("salign", "t");
   so.write("flashcontent");
</script>

wie übergebe ich die Paramter ans SWF object? (swf, id, width, height, version, background-color) .. sprich wie kann ich vom File die größe auslesen etc...

lg pat
 
danke.

hm, hab da ne Idee! weiß zwar net wie umsetzen, aber von der logik müßte es ja gehen.

die gallery funktioniert so: Meine FLashanwendung lädt ein Bild (jpg). Dieses liegt, zusammen mit dem SWF (gleicher größe) im selben Ordner und hat -bis auf die endung- auch den gleichen namen.

bsp. test.jpg und test.swf

Mit nem Klick auf das BILD öffnet sich ein Popup, in welchem das SWF geladen werden soll. Ich lese also die größe des JPGS mit getimagesize aus, checke, ob im gleichen PFAD noch eine Datei mit dem gleichen Namen, aber SWF endung liegt und lade dann das SWF mit den Parametern (höhe, breite) vom jpeg da rein.

Mit dem Klick auf das Bild wird also die PFADANGABE des Bildes an PHP übermittelt (soweit so gut, das funktioniert)

nur jetzt.. wie würde der PHP code dazu aussehen... :/

lg pat

ps: es is doch fast nur php wieso liegt der thread im ajax forum? oO
 
Zurück