Include-Problem

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

  • Include-Problem

    Habe folgendes Problem:

    Ich möchte einem befreundeten Webmaster meine Bildergalerie zur Verfügung stellen.

    Ich stelle mir das so vor:
    Er nimmt sein Layout und holt dort meine Bildergalerie per include rein. Das Script für die Bildergalerie, sowie die Bilder an sich, sollen auf meinem Server bleiben. Er soll lediglich die Möglichkeit haben meine Galerie zu nutzen.

    Ich hab schon einiges versucht, aber irgendwie bekomm ich's einfach nicht hin.

    Zweite Frage: werden per include eingebundene Dateien zuerst interpretiert oder nach dem Einbinden?
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    Ich hab schon einiges versucht, aber irgendwie bekomm ich's einfach nicht hin.
    was hast du versucht?
    Zweite Frage: [...]
    erste.

    werden per include eingebundene Dateien zuerst interpretiert oder nach dem Einbinden?
    es wird in erster linie einfach das eingebunden, was für das skript zugänglich ist.

    Kommentar


    • #3
      Also, auf dem fremden Server liegt lediglich eine index.php, die die Datei include.php von meinem Server hereinholt.
      In meiner Include Datei wird dann noch ein weiterer include ausgeführt, welcher, je nach übergebenen Variablen, die entsprechende Datei meiner Galerie einbinden soll.
      Problem ist jetzt aber, dass ich in der include.php relative Pfade verwende, was wohl das Problem ist. Ich vermute nämlich einfach mal, dass die include.php zuerst eingebunden wird und dann geparst wird. Logischerweise ist dann der Pfad falsch, da er die Dateien dann auf dem fremden Server sucht.

      Kann ich das Script dazu zwingen, die Datei bereits auf meinem Server zu parsen und dann auf dem fremden einzufügen? Wichtig wäre jedoch, dass die vom fremden Server übergebenen Variablen berücksichtigt werden.
      Das Genie überblickt das Chaos!

      Wer Rechtschreibfehler findet, darf sie behalten!

      Kommentar


      • #4
        Ich vermute nämlich einfach mal, dass die include.php zuerst eingebunden wird und dann geparst wird.
        nein, denn der php-quellcode ist i.d.r. für das andere skript nicht zugänglich.

        Kommentar


        • #5
          nein, denn der php-quellcode ist i.d.r. für das andere skript nicht zugänglich.
          Dann versteh ich aber ehrlich gesagt nicht, warum ich beim Ausführen der Datein index.php die Meldung bekomme, dass er den Befehl scandir() nicht kennt, wenn der doch eigentlich in der includierten Datei galerie.php5 befindet, welche die Endung .php5 hat (also den Befehl kennen muss).
          Wenn ich die index.php in index.php5 umbenenne, funktioniert das Script komischerweise.
          Das Genie überblickt das Chaos!

          Wer Rechtschreibfehler findet, darf sie behalten!

          Kommentar


          • #6
            Kann ich das Script dazu zwingen, die Datei bereits auf meinem Server zu parsen und dann auf dem fremden einzufügen? Wichtig wäre jedoch, dass die vom fremden Server übergebenen Variablen berücksichtigt werden.
            ev ein Konstrukt mit eval() . Wird aber das Problem der relativen Pfade nicht ändern. Da müsstest du schon absolute Pfade verwenden, damit das ganz auch im Kontext des anderen Server läuft

            Gruss

            tobi
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #7
              wie bindest du die datei denn nun ein?

              Kommentar


              • #8
                index.php (auf fremdem Server) -> enthält include, der die Datei include.php von meinem Server einbindet -> diese Datei includiert dann entsprechend der von index.php übergebenen Variablen die entsprechende Datei (z. B. galerie.php5)

                Das war das Erste Problem, das zweite Problem ist mein Problem mit scandir(). Mit Hilfe dieser Funktion lese ich nämlich alle Bilder eines Verzeichnisses aus und gebe diese aus. Das funktioniert auch wunderbar, bis auf die Tatsache, dass das Ganze nur dann funktioniert, wenn auch die index eine php5-Datei ist.
                Das Genie überblickt das Chaos!

                Wer Rechtschreibfehler findet, darf sie behalten!

                Kommentar


                • #9
                  Original geschrieben von chefdesigner
                  diese Datei includiert dann entsprechend der von index.php übergebenen Variablen die entsprechende Datei
                  Und wie findet diese Übergabe statt?
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    kannst du die eine zeile mit dem include posten?
                    ich meine die, die auf dem fremden server ausgeführt wird, um eine datei von deinem server einzubinden.

                    Kommentar


                    • #11
                      Code der index, die auf dem fremden Server liegt:
                      PHP-Code:
                      <?php include('http://www.meinserver.de/verzeichnis/unterverzeichnis/
                      include.php5?s='
                      .$_GET["s"].'&h='.$_GET["h"].'&id='.$_GET["id"].'&p='.$_GET["p"].'&pic='.$_GET["pic"].''); ?>
                      Code der include, die auf meinem Server liegt und die entsprechenden Dateien einbindet:
                      PHP-Code:
                      include('../../inc/config.inc.php');
                      if(
                      $h != "" && $s == "" && $id == "") {
                          include(
                      'inc/galerie_include.php');
                      }
                      elseif(
                      $id != "" && $s != "") {
                          include(
                      'inc/'.$s.'.php5');
                      }
                      elseif(
                      $id != "" && $s == "") {
                          include(
                      'inc/h.php');
                      }
                      elseif(
                      $id == "" && $s == "" && $h == "") {
                          include(
                      'inc/index_include.php');

                      Das Genie überblickt das Chaos!

                      Wer Rechtschreibfehler findet, darf sie behalten!

                      Kommentar


                      • #12
                        Okay, jetzt hab ich's hinbekommen, dass die richtigen Dateien includiert werden.

                        Allerdings funktioniert jetzt meine scandir() nicht.

                        Kann mir jemand sagen, was folgende Fehlermeldung bedeutet:

                        Warning: scandir(http://www.meinserver.de/galerie/images/) [function.scandir]: failed to open dir: not implemented in /homepages/htdocs/verzeichnis/unterverzeichnis/inc/g.php5 on line 20

                        Warning: scandir() [function.scandir]: (errno 0): Success in /homepages/htdocs/verzeichnis/unterverzeichnis/inc/g.php5 on line 20
                        Das Genie überblickt das Chaos!

                        Wer Rechtschreibfehler findet, darf sie behalten!

                        Kommentar


                        • #13
                          bis zum letzten Posting dachte ich, ich wüßte, wo das Problem liegt. Aber die Fehlermeldung verunsichert mich jetzt ein wenig.

                          Man korrigiere mich bitte, wenn es Blödsinn ist:

                          Ich glaube, dass include einfach das einbindet, was in der eingeschlossenen Datei steht und zwar
                          UNINTERPRETIERT.

                          D.h. wenn da drin irgendein Text steht, wird dieser "irgendein Text" in das aufrufende Script
                          einfach so eingebunden. Das würde aber anderseits bedeuten, dass der in der include-Datei enthaltene PHP-Code jedenfalls vom interpreter des aufrufenden Scripts interpretiert wird.

                          Wenn das kein PHP5 Interpreter ist kann er scandir() nicht erkennen, weil das nunmal eine PHP5 Funktion ist.

                          Wäre auch eine Erklärung dafür, dass es funktioniert, wenn mit einem .php5 Script aufgerufen wird,
                          aber nicht, wenn es mit .php aufgerufen wird.

                          PS: Deine Signatur ist genial, leider hab ich noch keinen Rechtschreibfehler gefunden, würde ihn aber dank der netten Einladung andernfalls jedenfalls (für mich) behalten.

                          Kommentar


                          • #14
                            die fehlermeldung besagt, dass scandir() als parameter eine url bekommt (wohl skriptbedingt, darum auf dem eigenen server funktionierend), was natürlich nicht funktionieren kann.

                            zeig mal die stelle, an der scandir aufgerufen wird.
                            Das würde aber anderseits bedeuten, dass der in der include-Datei enthaltene PHP-Code jedenfalls vom interpreter des aufrufenden Scripts interpretiert wird.
                            das ist quatsch, weil das skript über http aufgerufen wird. somit "interpretiert" der server, auf dem die datei (physisch) gelagert wird und auf dem ein http-server mit php läuft.

                            Kommentar


                            • #15
                              PHP-Code:
                              $dateien scandir(http://www.meinserver.de/galerie/images/); 
                              Das Genie überblickt das Chaos!

                              Wer Rechtschreibfehler findet, darf sie behalten!

                              Kommentar

                              Lädt...
                              X