Grafik wird nicht im iFrame angezeigt


  • Mr. T
  • 2267 Aufrufe 18 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Grafik wird nicht im iFrame angezeigt

    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:

    <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>


    das fenster bleibt bei allem was ich probiere immer weiß.

    könnt ihr mir vielleicht weiter helfen?

    mfg

    Mr. T
  • Öhm... wenn ich mich nicht völlig irre liegt das daran das du versuchst ein Bild "unter" dem iframe anzuzeigen. Wenn du ein bild im Iframe haben willst muss das bild auf der Seite angezeit werden das im iframe angezeigt wird. Also in der Seite die über die $_REQUEST['iframe_target'] variable übergeben wird...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • hallo,

    danke schonmal für eure angebote.

    ich war nicht sicher, ob das posten des links als spam interpretiert würde.

    also die seite Bjørn Rørslett - Natural Photographer ist meine studentische versuchsplatform, auf der meine arbeit zu sehen ist, welche meine prüfungsleistung des 1. semesters war. die ist ein refactoring der original-seite. der mensch dort bin also nicht ich. ;)

    zum zeitpunkt der abgabe, hatte eigentlich alles funktioniert, sonst hätte ich es nicht abgegeben. wie es scheint, hab ich das übersehen. das ist jetzt aber schon wieder 3 monate her und ich hab einiges vergessen. von php hab ich bis dato noch garkeine ahnung. die kleine php sequenz hat mir ein freund gesagt als lösung für eine idee, die ich hatte. wenn man durch die seite klickt, und dabei die adresszeile beobachtet, wird es schnell klar, wozu die da ist.

    zum jetzigen zeitpunkt, verhindert sie aber meinen durchblick. nehme ich sie raus, klappt das mit dem bild. ich hatte auch schon die vermutung, dass der iframe das pic überlagert.

    das bild gibt es entweder als einzelnes bild unter tb-creative.de/images/slice_12_monitor.jpg oder als seite mit dem bild unter Gallery

    ich kriegs nur einfach net eingebunden.... das ärgert mich total. ich hab einfach keine zeit, dran zu bleiben, weil ich so viel zu lernen habe :confused:

    was kann ich tun, damit das bild automatisch beim laden der seite bzw. refreshen da erscheint, wo es ursprünglich geplant war?

    gruß, mr. t
  • Wie ich schon sagte... mach eine Seite start.html in der das bild angezeigt wird (so wie du es in der menu.php machst) und änder dann den teil beim iframe so:
    <iframe name="iframe" id="iframe" src="start.html" width="329" height="255" frameborder="0" scrolling="no">
    </iframe>

    Ist nur ne vermutung, aber so sollte es eigentlich gehen. Du musst den Background der angezeigten webseite zuweisen, nicht dem iframe
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • dann kann ich mir die ganze geschichte mit dem iframe schenken, denn wenn ich die php sequenz dort rausnehme, funktioniert meine seite nicht mehr. wenn du tiefer in meine seite eintauchst, wird sich das display vergrößern. Beispiel:

    Startseite --> Menü --> About Me

    bestimmte verbindungen führen aber aufgrund von darstellungsproblemen wieder zu der 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 nur so.

    es hat doch alles mal geklappt. diese anweisung hatten wir uns nicht ohne grund so ausgedacht.

    es muss also eine andere möglichkeit geben. sowas wie eine per default geladene seite (das display), solange bis ich per aufruf eine andere laden lasse....

    gruß, mr. t
  • Ja dann mach ne php abfrage rein...

    PHP-Quellcode

    1. <?php
    2. if(!isset($_REQUEST['iframe_target']))
    3. $seite = "start.html";
    4. else
    5. $seite = $_REQUEST['iframe_target'];
    6. ?>
    7. <iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no">
    8. </iframe>


    Dadurch prüfst du ob eine andere Seite als die Startseite aufgerufen wird. Wenn nicht wird per default start.html im iframe angezeigt
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • das probiere ich mal.... danke für den code :)

    EDIT:

    hab den code wie folgt implementiert:

    PHP-Quellcode

    1. <?php
    2. if(!isset($_REQUEST['iframe_target']))
    3. $seite = "/sites/display.php";
    4. else
    5. $seite = $_REQUEST['iframe_target'];
    6. ?>
    7. <iframe name="iframe" id="iframe" src="<?php echo $seite; ?>" width="329" height="255" frameborder="0" scrolling="no">


    das objekt wurde so nicht gefunden. dann hab ich die display.php auf die ebene der index.php gelegt und $seite ="display.php" geschrieben --> objekt wurde nicht gefunden. ist der code richtig implementiert?

    mal abgesehen davon, kann ich auch auf das bild verweisen oder muss dieses in eine html- oder php-seite implementiert sein, um per default dargestellt zu werden?
  • beim aufruf der startseite erscheint im display-fenster
    Objekt nicht gefunden!

    Der angeforderte URL konnte auf dem Server nicht gefunden werden. Der Link auf der verweisenden Seite scheint falsch oder ...


    gruß, mr. t
  • was meinst du mit "bei mir klappt es so" ? wird bei dir das display-bild angezeigt?

    im selfhtml forum sagte mir gerade jemand:

    sorgt aber dafür, dass beim Aufruf der Seite Bjørn Rørslett - Natural Photographer an der betreffenden Stelle nur folgendes steht:

    »» <iframe name="iframe" id="iframe" src="" width="329" height="255" frameborder="0" scrolling="no">

    - keine Quell-Adresse angegeben, also wird auch nichts im Iframe dargestellt.

    Wenn ich die Seite jetzt aber mit einem Parameter iframe_target, wie du ihn zuvor nanntest, aufrufe - Bjørn Rørslett - Natural Photographer - 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.


    dies bezieht sich auf die seite OHNE if-abfrage. dann haben wir deine if-abfrage reingebaut, aber es geht noch nicht. dazu sagt er:

    Dann ist der Pfad wohl falsch.
    Also schau in den erzeugten HTML-Code, was dort steht.


    wo sieht man denn den ERZEUGTEN html code? ich hab grad nur im quelltext nachgesehen, aber da hat sich nichts geändert.

    gruß, mr. t
  • Wenn ich in deinen quellcode reinschaue und keine iframe_target gesetzt ist steht dort folgendes:

    PHP-Quellcode

    1. <iframe name="iframe" id="iframe" src="<?php echo $_REQUEST['iframe_target']; ?>" width="329" height="255" frameborder="0" scrolling="no">
    2. <img src="http://www.freesoft-board.to/images/slice_12_monitor.jpg" width="329" height="255" border="0" alt="">image</iframe>


    das <?php echo... darf man eigentlich nicht sehen. Wieso das nicht umgewandelt wird verstehe ich nicht. Wenn das klappt sollte es auch funktionieren...

    Versuch es mal so:

    PHP-Quellcode

    1. <iframe name="iframe" id="iframe" src=<?php echo "\"$seite\""; ?> width="329" height="255" frameborder="0" scrolling="no">
    2. </iframe>
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • komisch, jetzt gehts auf einmal. ich hab die seite mit deinem ersten code mal als Bjørn Rørslett - Natural Photographer aufgerufen, und auf einmal wars da. jetzt gehts auch ohne anhängsel mit dem code

    <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>


    :)

    sachen gibts.....

    jetzt schaue ich mal, was der knabe noch mit absicherung gegen xss-attacken gemeint hat... weißt du, was das ist?

    gruß, mr. t
  • Ja, XSS bedeutet Corss-Side-Scripting.
    Du hast deinen code nicht sonderlich sicher da du direkt ohne weitere prüfung die $_REQUEST variablen verwendest.
    Dadurch das du nun mit meinem code den inhalt umkopierst kannst du die variable Seite auf Gültigkeit prüfen.
    Wenn du das nicht machst kann ein Angreifer über die Variable iframe_target code in deine seite schleusen. Um sowas zu verhindern kannst du beispielsweise überprüfen ob gültige zeichen angegeben wurden z.B. über ne regex prüfung auf [a-z] wenn du nur wörter übergeben willst. Sonderzeichen und zahlen könntest du in dem Fall verbieten
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]
  • muss ich bei meinem content davon ausgehen, dass sich jemand daran austobt? die seite muss doch überhaupt erstmal gefunden werden und ist vom inhalt doch für gelangweilte script-kiddies völlig unmotivierend, sich daran auszutoben.... oder?

    reicht deine abfrage dann jetzt oder wie müsste ich die ggf. noch erweitern? der mensch bei selfhtml erwähnte "noch abgesichert werden - also mit htmlspecialchars behandeln" .

    gruß, mr. t
  • Ja das wär ne idee, einfach nach dem else teil:

    PHP-Quellcode

    1. $seite = htmlspecialchars($_REQUEST['iframe_target']);

    Dadurch werden sonderzeichen umgewandelt

    Du hast schon recht das deine seite für angreifer wohl eher uninteressant ist...
    [SIZE="1"]i'm a signature virus. copy me into your signature to help me spread. - smart questions[/SIZE]