Externe PHP-Datei in iFrame einbinden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Externe PHP-Datei in iFrame einbinden

    Hallo,

    wir haben auf unserer Webseite u.a. eine Tanzpartnersuche. Diese wollen wir nun anderen Webseiten zur Verfügung stellen. Ich habe nun versucht, das ganze einmal rudimentär umzusetzen:
    * Eine PHP-Datei mit einer vereinfachte Version unserer Suche erstellt (nennen wir sie mal suche.php).
    * Eine HTML-Seite erstellt, die dieses Skript über ein iframe einbindet (nennen wir sie mal extern.html). Diese Seite simuliert quasi die Fremdwebseite, die unser Skript nachher mal einbinden soll, deshalb habe ich sie auch an anderer Stelle abgelegt.
    Die suche.php benötigt ihrerseits andere Dateien (DB-Zugriff, Funktionen die Eingabeelemente erzeugen, Sprachendatei...) von unserem Server.
    Das ganze sieht dann ungefähr so aus:
    unser_server
    |- suche.php
    |- include/de.php

    anderer_pfad
    |- extern.html

    Wenn in der eingebundenen suche.php diese anderen Dateien nun einfach über
    PHP-Code:
    include("include/de.php"); 
    eingebunden werden, so werden sie nicht gefunden, da sie vom pfad der extern.html aus gesucht werden. Also habe ich das include in
    PHP-Code:
    include("unser_server/include/de.php"); 
    geändert. Jetzt gibt es keine Fehler mehr, dass die Dateien nicht gefunden werden, nichtsdestotrotz stehen aber die Variablen aus der Datei über global nicht zur Verfügung. Woran liegt das? Ich hoffe, mir kann da jemand helfen.

    Gruß Flo
    Zuletzt geändert von Lord Hessia; 06.03.2007, 07:50.

  • #2
    Derjenige, der dein Script includieren will muss den relativen Pfad angeben:

    include('http://deineurl.de/externe_suche/suche.php');
    Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
    - ...und solche Behauptungen in "falsches Resourcenmanagement"

    Kommentar


    • #3
      Hallo,

      danke für Deinen Antwort.

      Aber wäre das nicht doppelt gemoppelt? In der externen Seite wird die Datei ja schon über ein iframe eingebunden, also:
      PHP-Code:
      <iframe src="unser_server/suche.php" width="90%" height="400" name="TPBoerse">iFrame geht bei Ihnen leider nicht</iframe
      Und trotzdem soll in der Datei noch
      PHP-Code:
      include("unser_server/suche.php"); 
      stehen?
      Habe das jetzt einfach mal versucht, aber dann bekomme ich lediglich zweimal die Fehlermeldung, dass die Funktion aus der in der suche.php eingebundenen Datei nicht gefunden werden kann.

      Gruß Flo

      Kommentar


      • #4
        nein du sagst deinem kunden er soll in sein php quelltext das einfügen: include('http://deineurl.de/externe_suche/suche.php');
        Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
        - ...und solche Behauptungen in "falsches Resourcenmanagement"

        Kommentar


        • #5
          Wie oben bereits geschrieben, habe ich das ja noch mit in die Datei, die die Fremwebseite simulieren soll, aufgenommen. Dann erscheint der Fehler aber einfach zweimal.
          Außerdem wäre es sinnvoll, wenn der "Kunde" neben dem iframe nichts weiter oder zumindest keine PHP-Dinge einbauen müsste, damit er das ganze auch mit einer normalen HTML-Seite verwenden kann.

          Kommentar


          • #6
            Original geschrieben von zerni
            Derjenige, der dein Script includieren will muss den relativen Pfad angeben:

            include('http://deineurl.de/externe_suche/suche.php');
            absolut oder relative...entscheide Dich!

            Kommentar


            • #7
              jo sry vertauscht meinte absolute pfadangabe

              dann lass den Kunden nur eine js-Datei inbinden mit der du alles weitere machst
              Zuletzt geändert von zerni; 04.03.2007, 15:56.
              Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
              - ...und solche Behauptungen in "falsches Resourcenmanagement"

              Kommentar


              • #8
                Dann muss ich zwar kein PHP voraussetzen, dafür aber JavaScript. Das ist aber doch alles gar nicht nötig. Ich will doch einfach nur eine PHP-Datei in einem iframe einbinden. Das Problem dabei ist doch lediglich, dass diese Datei wiederum andere Dateien einbindet und dort irgendetwas nicht ganz funktioniert. Vielleicht muss man einen root_path irgendwo setzen oder so etwas und dann sollte es doch eigentlich schon funktionieren?

                Kommentar


                • #9
                  es ist doch völlig egal, ob du es mit js, php oder iframe einbindest!

                  der Pfad bleibt der Gleiche!

                  übrigens Iframes kannst du natürich nutzen, aber ist es nicht unbedingt die beste Möglichkeit, deshalb habe ich dir php & js gezeigt
                  Killerspiele sollten in der Größenordnung von Kinder********************grafie eingeordnet werden.(G. Beckstein)
                  - ...und solche Behauptungen in "falsches Resourcenmanagement"

                  Kommentar


                  • #10
                    Ok, und wo ist nun der Unterschied zwischen der URL, die ich oben angegeben habe und der, die Du angibst?

                    Kommentar


                    • #11
                      Original geschrieben von Lord Hessia
                      Ich will doch einfach nur eine PHP-Datei in einem iframe einbinden.
                      Dann gebe einfach nur die Adresse der Ressource als Quelle des Iframes an.
                      Das Problem dabei ist doch lediglich, dass diese Datei wiederum andere Dateien einbindet und dort irgendetwas nicht ganz funktioniert.
                      Dieses Problem ist von der Einbindung per Iframe vollkommen unabhängig.
                      Wenn du das Script direkt aufrufst, muss es ganz genauso bestehen.

                      Korrigiere also zuerst dein Script.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Ok, dritter Anlauf der Problembeschreibung: Das Skript funktioniert, wenn ich es lokal auf unserer Seite einbinde. Wenn ich es aber auf einer externen Seite (z.B. über das iframe) einbinde, dann bekomme ich die Fehler, dass die in diesem Skript inkludierten Dateien nicht gefunden werden können.
                        Also habe ich den include-Pfad von relativ auf absolut umgestellt und die Fehler veschwinden. Allerdings erscheinen dann andere, nämlich dass die Funktionen, die in diesen Dateien definiert wurden, nicht gefunden werden. Zum Testen habe ich diese dann direkt in dem Skript definiert. Anschließend werden die Funktionen natürlich gefunden, allerdings findet das Skript dann die Textvariablen nicht (unsere Seite ist mehrsprachig ind alle Texte stehen als Variablen in einer Datei für die jeweilige Sprache) und die Seite enthält zwar die Steuerelemente, die durch die Funktionen erzeugt wurden, aber keinerlei Text.
                        Ich könnte die Texte natürlich auch noch in die Datei schreiben, aber dann wäre es Essig mit der Mehrsprachigkeit und außerdem würden wir uns einen ordentlichen Wartungsaufwand ans Bein binden, wenn mal was geändert wird. Also soll der Kram schön brav in seinen externen Dateien bleiben und ich will diese in meinem Skript einbinden. So, und dabei brauche ich halt ein bisschen Hilfe, weil die oben beschriebenen Fehler aufreten.

                        Kommentar


                        • #13
                          Original geschrieben von Lord Hessia
                          Das Skript funktioniert, wenn ich es lokal auf unserer Seite einbinde.
                          Damit meinst du ja wohl auch include über's Dateisystem ...?

                          Schreibe dein Script so, dass es sich über HTTP direkt aufrufen lässt; passe dabei die Pfade so an, dass keine Fehler auftreten.

                          Wenn beides gleichzeitig möglich sein soll (include über's Dateisystem und Aufruf über HTTP) - dann überlege dir, wie du die Struktur dafür am sinnvollsten aufbaust.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Original geschrieben von wahsaga
                            Damit meinst du ja wohl auch include über's Dateisystem ...?
                            Damit meine ich, dass wir auf unserer Webseite eine index.php haben, die je nach Bedarf andere Dateien - z.B. die hier angesprochende, bockige suche.php einbindet. Da alle Dateien im Verzeichnisbaum irgendwo unterhalb der index.php liegen, gibt es hier auch keine Probleme.

                            Kann es sein, dass es bei PHP z.B. irgendwelche Sicherheitseinstellungen gibt, die verhindern, dass man in einem Skript, das man extern irgendwo einbindet, einfach mal so weitere lokale Dateien verwendet?

                            Kommentar


                            • #15
                              Original geschrieben von Lord Hessia
                              Damit meine ich, dass wir auf unserer Webseite eine index.php haben, die je nach Bedarf andere Dateien - z.B. die hier angesprochende, bockige suche.php einbindet. Da alle Dateien im Verzeichnisbaum irgendwo unterhalb der index.php liegen, gibt es hier auch keine Probleme.
                              Natürlich - weil dann von der index.php aus nach weiteren Dateien gesucht wird.
                              Liegt die suche.php aber in einem anderen Verzeichnis, und du rufst sie direkt auf - dann wird von dort aus gesucht.
                              Kann es sein, dass es bei PHP z.B. irgendwelche Sicherheitseinstellungen gibt, die verhindern, dass man in einem Skript, das man extern irgendwo einbindet, einfach mal so weitere lokale Dateien verwendet?
                              Nö.

                              Den include_path entsprechend zu erweitern könnte dem Problem auch schon abhelfen. (Wenn man in Kauf nehmen will, dass dann ggf. mehr Dateisystemoperationen zum finden eingebundener Dateien nötig sind, als wenn man gezielt anspricht.)
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X