Jan: Einbinden externer Seiten

Hi,

ich will eine externe Seite einbinden, allerdings keien Frames benutzen. Ich versuche es derzeit mit:

function getcontent($url)
{
  $file = fopen($url,"r");
  $result = fread($file,8192);
  return $result;
}

Aber das funktioniert nicht... Kann mir jemand weiterhelfen?

Danke!

  1. Hallo

    ich will eine externe Seite einbinden,

    mit Genehmigung?

    Ich versuche es derzeit mit:

    function getcontent($url)
    {
      $file = fopen($url,"r");
      $result = fread($file,8192);
      return $result;
    }

    Aber das funktioniert nicht...

    "Funktioniert nicht" ist keine Fehlerbeschreibung.

    Was erwartest Du?
    Was erhältst Du?

    Kann mir jemand weiterhelfen?

    Nicht mit diesem Informationsstand.

    Hinweisende Frage:
    Wie oft darf maximal in einem HTML-Dokument <html> stehen, wie oft <head>, wie oft <body>?

    Freundliche Grüße

    Vinzenz

    1. Hi,

      ja, mit Genehmigung - mein externe andere Seite genehmige ich mir glaube ich^^

      Was ich erwarte? Ich erwarte die Seite in dem div eingebunden! Aber da steht nichts... error_reporting hab ich auch E_ALL und es werden keine Fehler angezeigt, einfach nur nichts^^ Nur der HTML Code wird ausgeführt.

      Mehr kann ich leider auch nicht sagen...

      1. Hi,

        Was ich erwarte? Ich erwarte die Seite in dem div eingebunden!

        Also doch html, head, body oefter als erlaubt in einem Dokument?

        Aber da steht nichts... error_reporting hab ich auch E_ALL und es werden keine Fehler angezeigt, einfach nur nichts^^

        display_errors auch auf on?

        Und warum hast du keinerlei Fehlerbehandlung in deinem Code drinstehen?

        Nur der HTML Code wird ausgeführt.

        Und was siehst du da, wenn du in der Quelltextansicht deines Browser nachschaust?

        Mehr kann ich leider auch nicht sagen...

        Doch, koenntest du. Du muesstest nur etwas logischer ueberlegen, wie man sich so einem Problem naehert, bzw. Problemen im Allgmeinen - sprich, dir mal eine vernuenftige Fehlersuch- und Debugstrategie ueberlegen.

        MfG ChrisB

        1. <html>
          <body>
          <head>
          <link rel="stylesheet" href="style.css" type="text/css">
          </head>
          <?php

          error_reporting(E_ALL);

          function getcontent($url)
          {
            $file = fopen($url,"r");
            $result = fread($file,8192);
            return $result;
          }

          if(isset($_GET['id'])) {
            $id=$_GET['id'];
            include("connect.php");
            $erg=mysql_query("SELECT max(id) as id FROM options") or die(mysql_error());
            while($row=mysql_fetch_assoc($erg)) {
              $max=$row['id'];
            }
            if ($id>$max) {
              echo "Diese ID ist nicht vergeben!";
              exit;
            }
            else {
              $erg=mysql_query("SELECT eins,zwei,drei,vier,fünf,sechs,sieben,acht,neun FROM options WHERE id = $id") or die(mysql_error());
              while($row=mysql_fetch_assoc($erg)) {
                $eins=$row['eins'];
                $zwei=$row['zwei'];
                $drei=$row['drei'];
                $vier=$row['vier'];
                $fünf=$row['fünf'];
                $sechs=$row['sechs'];
                $sieben=$row['sieben'];
                $acht=$row['acht'];
                $neun=$row['neun'];
              }
            }
          }
          else {
            echo "Es ist ein Fehler aufgetreten. Bitte versuchen sie es erneut.<br/><br/><a href="index.php">Startseite</a>";
            exit;
          }

          ?>

          <!-- WEG WEG WEG -->
          <link rel="stylesheet" href="style.css" type="text/css">
          <!-- WEG WEG WEG -->
          <div id="ol">
            <?php
              getcontent($eins);
            ?>
          </div>

          </body>
          </html>

          Das ist die Datei, die alles zusammenstellt. Und html head und body tauchen jeweils nur einmal auf...

          1. Hmm,

            upps.... Von weg bis weg dass hab ich vergessen mal zu löschn^^

          2. Hallo

            <html>

            jetzt haben wir einmal <html>
            Ach ja: Doctypes und sowas sind auch ganz nett :-)

            <body>

            jetzt haben wir einmal <body>
            Huch, da fehlte ja ein <head>, genauer gesagt war der implizit da, es fehlte also ein <title>irgendein Text</title>. Das ist vorgeschrieben.

            <head>

            Nett, <head> nach <body>
            ich empfehle als Lektüre: SELFHTML, Grundgerüst einer HTML-Datei

            [...]

            <div id="ol">
              <?php

            Was steht in der Variablen $eins?
            Die URL einer Deiner anderen Seiten?
            Hast Du Dir mal den Quelltext dieser Seite angeschaut?
            Gibt es dort auch <html>, <head>, <body>

            getcontent($eins);

            Wenn ja, zum wievielten Mal sind sie jetzt im Quelltext des von PHP produzierten HTML drin?

            Das ist die Datei, die alles zusammenstellt. Und html head und body tauchen jeweils nur einmal auf...

            Wirklich? Ganz wirklich? Schau' Dir den Quelltext an, den Dir Dein Browser bietet.

            Freundliche Grüße

            Vinzenz

          3. Hi,

            Das ist die Datei, die alles zusammenstellt.

            Und was haben deine Kontrollausgaben ergeben - beinhalten die verwendeten Variablen auch die Werte, die du annimmst? (Und welche waeren das?)

            MfG ChrisB

          4. Hi,

            <?php
                getcontent($eins);
              ?>

            Wenn du am Rueckgabewert der Funktion in keinster Weise interessiert bist - und das scheint wohl der Fall zu sein, denn du machst ja absolut nichts mit ihm - wieso rufst du die Funktion dann ueberhaupt auf?

            MfG ChrisB

            1. Hallo Chris,

              <?php
                  getcontent($eins);
                ?>

              Wenn du am Rueckgabewert der Funktion in keinster Weise interessiert bist - und das scheint wohl der Fall zu sein,

              wie konnte ich das übersehen :-(
              So stimmt Jans Aussage: 1x <html>, 1x <head> und 1x <body> im Quelltext :-)

              Freundliche Grüße

              Vinzenz

              1. Hi,

                Wenn du am Rueckgabewert der Funktion in keinster Weise interessiert bist - und das scheint wohl der Fall zu sein,

                wie konnte ich das übersehen :-(

                Hab' ich ja auch erst (du hattest ja immer hin schon nachgefragt, welcher Code fuer die Ausgabe zustaendig waere) - liegt wohl daran, dass wir ein gewisses Grundverstaendnis vom Umgang mit Funktionen und deren Rueckgabewerten irgendwie voraussetzen ...

                MfG ChrisB

      2. Hallo Jan,

        ja, mit Genehmigung - mein externe andere Seite genehmige ich mir glaube ich^^

        ok, die war leicht zu bekommen.

        Was ich erwarte? Ich erwarte die Seite in dem div eingebunden!

        Wieso? Welcher PHP-Code wäre für diese Ausgabe zuständig?
        Kannst Du uns diesen zeigen?

        Aber da steht nichts... error_reporting hab ich auch E_ALL und es werden keine Fehler angezeigt, einfach nur nichts^^ Nur der HTML Code wird ausgeführt.

        ach und wie oft tauchen die von mir vorhin nachgefragten Elemente im resultierenden HTML-Quelltext auf?

        • <html>
        • <head>
        • <body>

        Wie oft dürfen sie insgesamt auftauchen?

        Freundliche Grüße

        Vinzenz

  2. Hi,

    Aber das funktioniert nicht... Kann mir jemand weiterhelfen?

    Aber natuerlich und gern:

    Fuer alle, die immer noch nicht begriffen haben, dass "funzt nich" keine brauchbare Problembeschreibung darstellt, steht's hier noch mal ausfuehrlicher beschrieben, wie's richtig geht: Tipps fuer Fragende

    MfG ChrisB

  3. Hello,

    function getcontent($url)
      {
        $file = fopen($url,"r");

    $buffer = '';
        $result = '';

    if ($file)
        {
          while($buffer = fread($file,256)
          {
            $result .= $buffer;
          }

    fclose($file);
        }
        return $result;
      }

    Aber das funktioniert nicht... Kann mir jemand weiterhelfen?

    So kann es funktionieren.
    Man sollte sich aber noch in die beiden Timeout-Einstellungen einlesen und die hier noch einbauen.
    Timeout für das Eröffnen eines Sockets (Verbindung zum File)
    Timeout während des Lesens des Files (innerhalb der Schleife)

    Musst Du im PHP-Manual einfach mal suchen danach.

    Anderenfalls könnte diese Funktion Deine Seite leicht mal zum "Aufhängen" bringen.

    Liebe Grüße

    Tom

    --
    Coming Back soon