Grafik wird nicht im iFrame angezeit
Tino
- html
hallo leute,
ich habe ein kleines problem, welches mir große kopfschmerzen bereitet. ich komme partout auf keine lösung. ich habe auf meiner seite eine tabelle mit versch. slices. eines davon soll in einem iframe erscheinen. der iframe deshalb, weil sich dort alles weitere auf knopfdruck abspielt. das startbild soll automatisch beim laden der seite dort erscheinen. tut es aber nicht.
mein code ist:
[Code]<td colspan="5" rowspan="14">
<iframe name="iframe" id="iframe" src="<?php echo $_REQUEST['iframe_target']; ?>" width="329" height="255" frameborder="0" scrolling="no">
<img src="images/slice_12_monitor.jpg" width="329" height="255" border="0" alt="">image</iframe></td>[/CODE]
das fenster bleibt bei allem was ich probiere immer weiß.
könnt ihr mir vielleicht weiter helfen?
mfg
tino
Hi!
<iframe name="iframe" id="iframe" src="<?php echo $_REQUEST['iframe_target']; ?>" width="329" height="255" frameborder="0" scrolling="no">
das fenster bleibt bei allem was ich probiere immer weiß.
könnt ihr mir vielleicht weiter helfen?
Bist du sicher, daß es sich um ein (X)HTML-Problem handelt?
Was steht denn in $_REQUEST['iframe_target']?
Schöner Gruß,
rob
hallo rob,
ich denke schon, dass es ein html problem ist, weil ich den iframe ja in html geschrieben habe. im übrigen ist die ganze seite html und css bis auf klitzekleine php anweisungen zum übergeben von links. diese anweisungen hat mir ein helfer gemacht, da ich von php (noch) nichts verstehe und es schnell gehen musste. daher kann ich dir keine antwort geben auf "was steht denn in ..." ich kann aber meine information ausbauen. meine seite steht nur zu testlaufzwecken auf www.tb-creative.de , und stellt eine aufgabe dar, welche ich lösen musste (refaktoring einer vorhandenen seite). der einsatz der php anweisungen wird klar wenn man wie folgt navigiert:
Startseite --> Menü --> About Me
displayausschnitt wird vergrößert - bestimmte seiten führen aber aufgrund von darstellungsproblemen wieder zurück zur auflösung der startseite und die angeforderte seite wird dann dort in den iframe geladen. Beispiel:
Startseite --> Menü --> About Me --> dort dann links auf Menü und dann --> Reviews
diese automatik kann nicht funktionieren OHNE die php anweisung, denn ich muss die adressen über mehrere ebenen hinweg übergeben und das geht bislang nur so.
wie gesagt, hatte ich die idee ... die lösung ist von einem freund, der schon viel weiter ist als ich.
wenn ich die home aufrufe soll lediglich das display http://www.tb-creative.de/images/slice_12_monitor.jpg auch da erscheinen, wo es angedacht war. dieses bild existiert auch als seite http://www.tb-creative.de/sites/display.php und ich dachte mir, dass es möglich sein könnte, quasi per default diese beim aufruf der home ins display zu laden, bis man etwas anderes ruft. aber ich kriegs net hin.
das ging alles mal prima. ich weiß jetzt nicht mehr, wo der fehler sein soll. hab jetzt schon 2 monate nicht mehr an der seite gearbeitet und schon wieder zu viel vergessen, weil ich zu viel lernen muss, das nichts damit zu tun hat.
ich hoffe, ihr könnt mir helfen, diesen schönheitsfehler zu beheben, denn der ist peinlich.
hi,
ich denke schon, dass es ein html problem ist, weil ich den iframe ja in html geschrieben habe.
Dein HTML-Code entspricht nicht dem, den du haben willst.
Da dieser HTML-Code von PHP erzeugt wird - ist das ein PHP-Problem.
im übrigen ist die ganze seite html und css bis auf klitzekleine php anweisungen zum übergeben von links.
Diese Klitzekleinigkeit sorgt aber dafür, dass beim Aufruf der Seite http://www.tb-creative.de/ an der betreffenden Stelle nur folgendes steht:
<iframe name="iframe" id="iframe" src="" width="329" height="255" frameborder="0" scrolling="no">
Wenn ich die Seite jetzt aber mit einem Parameter iframe_target, wie du ihn zuvor nanntest, aufrufe - http://www.tb-creative.de/?iframe_target=%2Fsites%2Fdisplay.php - dann kommt da auch etwas sinnvolles heraus.
Nur beim Erstaufruf der Seite _ohne_ Parameter logischerweise nicht.
Da müsste also erst mal eine Abfrage davor, ob der Parameter "leer" bzw. nicht gesetzt ist - und dann stattdessen ein Default-Wert angenommen werden.
Und gegen XSS-Attacken sollte diese Ausgabe natürlich auch noch abgesichert werden - also mit htmlspecialchars behandelt.
gruß,
wahsaga
hallo wahsaga,
danke für deinen beitrag! ich hab es eben mit der folgenden abfrage probiert:
<?php
if(!isset($_REQUEST['iframe_target']))
$seite = "/sites/display.php";
else
$seite = $_REQUEST['iframe_target'];
?>
<iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no">
allerdings wurde das objekt nicht gefunden. wenn ich display.php in denselben ordner lege, wo auch index.php liegt, kommt dieselbe meldung. dazu 2 fragen:
1.) ist der code falsch? kann man nicht auf auf dateien in anderen verzeichnissen referenzieren beim zuweisen?
2.) könnte man auch das bild direkt zuweisen oder muss es eine webseite sein? das läge dann in images/bild.jpg und wirft so auch hier die frage auf mit dem zuweisen von dateien in anderen verzeichnissen derselben ebene.
was du mit xss attacke meinst, frage ich lieber garnicht erst. bin jetzt schon verwirrt genug. sollen sich die script-kiddies ruhig austoben. bei mir ist nix zu holen. und der server wird vom hoster gesichert.
gruß, tino
hi,
if(!isset($_REQUEST['iframe_target']))
$seite = "/sites/display.php";
else
$seite = $_REQUEST['iframe_target'];
?>
<iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no">allerdings wurde das objekt nicht gefunden.
Dann ist der Pfad wohl falsch.
Also schau in den erzeugten HTML-Code, was dort steht.
2.) könnte man auch das bild direkt zuweisen oder muss es eine webseite sein?
Wenn du mit dem Default-Rand und der Default-Hintergrundfarbe um das Bild herum leben kannst ...
was du mit xss attacke meinst, frage ich lieber garnicht erst. bin jetzt schon verwirrt genug. sollen sich die script-kiddies ruhig austoben. bei mir ist nix zu holen. und der server wird vom hoster gesichert.
XSS macht ggf. auch die Besucher deiner Seite zu Opfern.
gruß,
wahsaga
ähm... auch auf die gefahr hin, dass ich mir gleich ne virtuelle watschn einfange die frage:
wo wenn nicht im quelltext des browsers sehe ich den erzeugten html-code?
im quelltext hat sich nichts verändert, wenn ich die seite aufrufe.
der pfad stimmt hundertpro, denn es ist derselbe, auf den du auch verwiesen hast mit dem erweiterten link zur startseite in deinem ersten beitrag. ich gehe doch von der ebene aus, auf der die index.php liegt. da liegt der ordner sites und darin die seite - also eine ebene tiefer - folglich /sites/display.php. da kann man doch nun wirklich nicht viel verkehrt machen.
ich muss hier doch nicht mit absoluten pfaden arbeiten, oder?
PS: danke für den support, auch wenn sich das problem als PHP-problem herausgestellt hat.
gruß, tino
Nachtrag: jetzt gehts.... ich weiß nicht wieso,aber einmal aufrufen mit /index.php hinten dran und es ging ... und jetzt auch ohne diesesn anhängsel. code ist immernoch derselbe:
<td colspan="5" rowspan="14">
<?php
if(!isset($_REQUEST['iframe_target']))
$seite = "sites/display.php";
else
$seite = $_REQUEST['iframe_target'];
?>
<iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no"></iframe></td>
danke für den support!
werde mich dann mal erkundigen, was es mit xss auf sich hat.
vielleicht könntest mir trotzdem mal sagen, warum meine besucher zu opfern werden würden?
gruß, tino
Hi!
<?php
if(!isset($_REQUEST['iframe_target']))
$seite = "/sites/display.php";
else
$seite = $_REQUEST['iframe_target'];
?>
<iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no">
Damit ich ich jede beliebige Datei auf deinem Server einbinden, indem ich den Dateinamen einfach per URL übergebe oder per POST sende.
Das solltest du niemals machen.
Setze einen Switch-Block ein und übergebe auch nicht den vollständigen Dateinamen per URL:
switch ( $_GET['iframe_target'] )
{
case 'irgendwas':
$seite = "/sites/seite1.php";
break;
case 'irgendwasAnderes':
$seite = "/sites/seite2.php";
break;
default:
$seite = "/sites/display.php";
break;
}
Schöner Gruß,
rob