Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Include bei Subdomain

Einklappen

Neue Werbung 2019

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

  • PHP Include bei Subdomain

    Grüße euch,

    stehe derzeit vor einem Problem, bei dem ich mich gerne erkundigen würde, ob es alternative Lösungswege gibt.
    Vorzustellen sind mehrere Funktionen die Dateien ausgehend aus dem absoluten Pfad: 'DOCUMENT_ROOT' includieren.
    Das heist die Funktionen binden die Dateien einfach vom absoluten Pfad ein.
    Nun ist es aber so, wenn ich eine Subdomain erstelle, ändert sich der 'DOCUMENT_ROOT' ja ebenfalls auf das zugewiesene Unterverzeichnis.
    Wenn Subdomain helloworld.domain.de das Verzeichnis /helloworld zugewiesen wurde, geht gehen die Funktionen auch davon aus, dass der absolute Pfad 'DOCUMENT_ROOT'/helloworld ist (dabei ist 'DOCUMENT_ROOT' der normale absolute Pfad).

    Habe ich eine Möglichkeit die Dateien auch anderes als mit 'DOCUMENT_ROOT' zu includieren, sodass auch bei Subdomains eine Einbindung möglich ist?

  • #2
    gehen die Funktionen auch davon aus, dass der absolute Pfad 'DOCUMENT_ROOT'/helloworld ist (dabei ist 'DOCUMENT_ROOT' der normale absolute Pfad).
    Das kommt darauf an, wie Du es umsetzt. Man kann ja bspw. eine kofigurierte Pfadvariable/konstante für Root benutzen.

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      Das kommt darauf an, wie Du es umsetzt. Man kann ja bspw. eine kofigurierte Pfadvariable/konstante für Root benutzen.
      Gehen wir mal davon aus, dass ich nichts in der Konfiguration ändern möchte. Welche Alternativen habe ich?

      Kommentar


      • #4
        Von welcher Konfiguration redest Du? Ich rede von einer stino Variable/Konstante.

        Kommentar


        • #5
          Zitat von nikosch Beitrag anzeigen
          Von welcher Konfiguration redest Du? Ich rede von einer stino Variable/Konstante.
          Könntest du mir ein Beispiel vom Auslesen und Setzen einer solchen Variable geben?

          Kommentar


          • #6
            Nö. Das sind Grundlagen.

            Kommentar


            • #7
              Kleiner Tipp: stino heißt "stinknormal". Der Punkt ist, dass du den Pfad zur Applikation auch automatisch ermitteln kannst. Wie genau hängt natürlich davon ab, wie deine Verzeichnisstruktur aussieht, das wird aus dem Ausgangspost nicht wirklich deutlich. Hilfreich ist ggf. die magische Konstante __DIR__

              Kommentar


              • #8
                Also ihr beide seit vollkommen auf dem Holzweg.
                Ich habe doch beschrieben, dass bei einer Subdomain man nicht magische Konstanten verwenden kann, da sich bei Subdomains die Konstante __DIR__ oder 'DOCUMENT_ROOT' dem Unterverzeichnis der Subdomain anpasst.
                Das heist im Klartext z.B.:
                Die Konstante __DIR__ hat bei Aufruf der normalen Domain den Pfad /www/web/html/ und bei einer Subdomain die auf den Ordner helloworld verweist /www/web/html/helloworld/ .
                Das heisst includes, die mit solchen Konstanten bezweckt werden sind nicht hilfreich.
                Deshalb ja meine Frage, was gibt es für Alternativen?

                Kommentar


                • #9
                  Du hast aber nicht beschrieben, was du von wo inkludierst.

                  So könnte es aussehen:
                  PHP-Code:
                  // /www/web/html/index.php
                  define ('APP_ROOT'__DIR__'/..');
                  include 
                  APP_ROOT '/foobar.php';

                  // /www/web/html/helloworld/index.php
                  define ('APP_ROOT'__DIR__'/../..');
                  include 
                  APP_ROOT '/foobar.php';

                  // /www/web/foobar.php
                  include __DIR__ '/othercommonstuff.php'
                  Immer noch vollkommener Holzweg?

                  Kommentar


                  • #10
                    Zitat von fab Beitrag anzeigen
                    Du hast aber nicht beschrieben
                    Doch, eigentlich schon! Lies dir mal meinen ersten Post durch ich dem ich erklären, dass die Dateien bei einer Subdomain nicht mit normalen Konstanten includet werden können

                    Zitat von fab Beitrag anzeigen
                    Immer noch vollkommener Holzweg?
                    Leider ja. So, nun einmal im vollen Context. Stell dir eine Funktion vor:
                    PHP-Code:
                    <?php

                    function hello(){
                        
                    // kann auch $var heissen ~ banane!
                        
                    include(__DIR__.'datei.php');    
                        
                        
                    // bli bla blub
                    }

                    hello();

                    ?>
                    Die Funktion wird sowohl bei einer Subdomain (dabei hat die magische Konstante einen anderen Wert), als auch von der Hauptdomain aufgerufen. Jetzt brauche ich einen Weg, dass die Datei.php in jedem Fall, unabhängig von magischen Konstanten includet wird (somit gefunden wird).

                    Nun klar?

                    Kommentar


                    • #11
                      Du sprichst immer nur von Funktionen, woher soll ich wissen, in welcher Datei in welchem Verzeichnis die liegen? Du schreibst, __DIR__ hat einen unterschiedlichen Wert, das ist entweder falsch und du hast die Funktion dieser Konstante nicht verstanden oder hello() taucht in zwei verschiedenen Dateien an verschiedenen Orten auf. In dem Fall kannst du den Pfad zu datei.php auch jeweils unterschiedlich angeben. Das wäre allerdings ein Verstoß gegen das "Don't Repeat Yourself"-Prinzip, den du dringends beheben solltest.

                      Kommentar


                      • #12
                        Wenn Deine Domain und eine Subdomain auf vollkommen verschiedene Document-Roots zeigen (was ja nicht zwingend sein muss), dann sind/sollen die beiden Aufrufe als zwei getrennte Installationen angesehen werden, nicht?

                        Dann gehörten die Sourcen an einen dritten Ort und in jedes doc-Root Verzeichnis eine index.php mit einer config.

                        Wo ist Dein Problem?

                        Kommentar


                        • #13
                          Wie oft soll ich noch sagen, Du sollst den Pfad als Konstante anlegen. __DIR__ ist abhängig vom Kontext, das kann man im Manual nachlesen. Klar ist das so nicht zu gebrauchen. Im Startscript dagegen schon.

                          Kommentar

                          Lädt...
                          X