Seite 1 von 2

INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 18:19
von RubberDuck
Das Forum liegt in einem Unterordner und dort liegt die Datei dummy.php.

/forum/dummy.php

Es gibt auch die passende dummy.html im Style und bis hierhin wird auch alles korrekt ausgegeben.

In einem weiteren Ordner liegt die Datein test.php, also ausserhalb von /forum/ !

/test/test.php

Diese soll nun in dummy.html mit

Code: Alles auswählen

 <!-- INCLUDEPHP ../test/test.php -->
eingebunden werden.

Nur irgendwie lässt mich INCLUDEPHP nicht aus dem Root vom Forum raus. Es kommt diese Meldung

Code: Alles auswählen

template->_php_include(): File ./../test/test.php does not exist or is empty
Keine Ahnung warum er immer den ./ davor setzt.

Hat evtl. jemand eine Idee? Ich meine das es bei den vorherigen Versionen noch funktionierte.

phpBB ist natürlich auf dem aktuellen Stand.

Danke.

Gruß
Rene

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 19:58
von modernist
Hast du's schon mit ./test/test.php versucht? Mit nur einem Punkt.

Ansonsten wäre vielleicht eine absolute Pfadangabe eine Alternative http://forum.tld/test/test.php?

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 20:25
von RubberDuck
modernist hat geschrieben:Hast du's schon mit ./test/test.php versucht? Mit nur einem Punkt.
Ansonsten wäre vielleicht eine absolute Pfadangabe eine Alternative http://forum.tld/test/test.php?
Mit ./ geht es nicht, dann macht er selber ././ draus. Und der über http:// geht leider auch nicht, denn der betreffende Ordner, bzw. dessen Inhalt, kann nicht über http:// aufgerufen werden.

Habe auch nochmal versucht herauszufinden wo diese eine ./ herkommt, aber leider ohne Erfolg.

Gruß
Rene

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 20:39
von Mahony
Hallo
Schau mal hier http://www.akademie.de/gestalten/html-u ... pfade.html
Bei INCLUDEPHP wird immer vom Forum-root ausgegangen.

Demnach sollte also ../test/test.php der richtige Pfad sein (vorletztes Beispiel im verlinkten Beitrag).

Grüße: Mahony

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 20:48
von RubberDuck
Hallo Mahony

Das habe ich mir ja auch gedacht und es so auch angegeben. Das Ergebniss ist dann

Eingegeben:

Code: Alles auswählen

<!-- INCLUDEPHP ../test/test.php -->
Fehlermeldung:

Code: Alles auswählen

template->_php_include(): File ./../test/test.php does not exist or is empty
Es wird immer wieder ein "./" davor gesetzt. Ich komme also nicht aus dem Forenroot nach oben hin raus.

Gruß
Rene

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 21:55
von Mahony
Hallo
Frage: Welche phpBB3 - Version hast du im Einsatz?
siehe http://www.phpbb.com/community/viewtopi ... #p11235105
A non-comprehensive list of smaller changes implemented in phpBB 3.0.6
INCLUDEPHP paths are now relative to $phpbb_root_path.
P.S. Ansonsten kannst du es auch so versuchen

Code: Alles auswählen

<!-- PHP -->
   include('http://www.website.com/test/test.php');
<!-- ENDPHP -->
oder eben mit Dateisystem-Pfad "/home/www/public_html.." (oder so ähnlich - Den genauen Dateisystem-Pfad erfährst Du von Deinem Webhoster.)


Grüße: Mahony

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 22:40
von RubberDuck
Hallo Mahony
A non-comprehensive list of smaller changes implemented in phpBB 3.0.6
INCLUDEPHP paths are now relative to $phpbb_root_path.
Genau das ist es. Da wird in der templates.php einfach das $phpbb_root_path davor gesetzt und da kommt dann auch der "./" her. Nimmt man das $phpbb_root_path weg, dann klappt es auch. Komisch ist nur, das es erst jetzt aufgetreten ist nach dem Umzug auf den neuen Server. Auf dem alten Server klappte es auch noch mit der 3.0.7p1 trotz des $phpbb_root_path. Also selbe phpBB Version und unterschiedliche Reaktion auf den beiden Servern.
Ansonsten kannst du es auch so versuchen

Code: Alles auswählen

<!-- PHP -->  include('http://www.website.com/test/test.php'); <!-- ENDPHP -->
Das ging ja nicht, weil die Inhalte aus dem Ordner nicht direkt über http zu erreichen sind.

Code: Alles auswählen

<!-- PHP -->  include('../test/test.php'); <!-- ENDPHP -->
Und das führte zum gleichen Ergebnis.

Ich habe nun das $phpbb_root_path rausgeworfen und nun klappt es wie immer. Schade nur, das von Seiten der Forensoftware diese Einschränkungen gemacht werden und man es quasi "aufgezwungen" bekommt wie man seine Verzeichnisse anzulegen hat. Ein "Schalter" im Adminbereich würde einem die Wahl lassen :)

Trotzdem Danke für die Mühe.

Gruß
Rene

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 22:42
von Mahony
Hallo
RubberDuck hat geschrieben:Das ging ja nicht, weil die Inhalte aus dem Ordner nicht direkt über http zu erreichen sind
Mahony hat geschrieben:oder eben mit Dateisystem-Pfad "/home/www/public_html.." (oder so ähnlich - Den genauen Dateisystem-Pfad erfährst Du von Deinem Webhoster.)
Das sollte dann funktionieren.


Grüße: Mahony

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 22:48
von RubberDuck
Nein, ging ja auch nicht weil dann das "./" wieder davon stand. War dann wieder

".//var/ww/..............."

Wie gesagt, das ging dann nur durch die Änderung in der templates.php und nun läuft es wieder.

Gruß
Rene

Re: INCLUDEPHP ausserhalb des root

Verfasst: 16.09.2010 22:55
von Mahony
Hallo
Hast du es mit

Code: Alles auswählen

<!-- PHP -->
   include('Dateisystem-Pfad/test.php');
<!-- ENDPHP -->
versucht?

Grüße: Mahony